rustsn 0.18.0

This Rust-based tool generates, compiles, and tests code using LLMs, resolves dependencies, and provides explanations of existing code through embeddings.
curl http://localhost:11434/api/embeddings -d '{
  "model": "bge-large",
  "prompt": "Llamas are members of the camelid family"
}'


curl http://localhost:11434/api/generate -d '{
  "model": "qwen2.5-coder:1.5b",
  "prompt": "Why is the sky blue?",
  "options": {
    "seed": 123
  }
}'


curl http://localhost:11434/api/generate -d '{
  "model": "qwen2.5-coder:1.5b",
  "prompt": "Why is the sky blue?",
  "options": {
    "seed": 123,
    "num_gpu": 0
  }
}'



Насчитывать embededing для каждой функции

Насчитывать вектор embededing для документов Jetico Search потом поиск

----------------

Запуск только на своем железе так как не платить
или для серьезных парней из соображения безопасности не отдавать на сторону


1. mem0 - знание предпочтение юзера https://github.com/mem0ai/mem0
2. генерация функций изолированых (уже есть)
3. водопад - с нуля проект
3.1.  посевной проект 
3.2.  генерация функция в посевной проект
4. легаси проект с кодом старым
4.1 добавление фнукицй в старый проект
5. векторные БД для каталогизации исходников для 3.2 
6. векторные БД для каталогизации исходников для особенно 4.1 с использованием 1.
7. Написать плагин для VSCODE/Idea

веторные БД или RAG системы https://qdrant.tech/



**Векторная база данных для LLM (Large Language Model)** — это специальная база данных, которая оптимизирована для хранения, индексации и поиска данных в виде векторов. Эти векторы представляют собой числовые представления данных, которые LLM использует для понимания и обработки информации, например, текста, изображений или других типов данных.

Когда текст или другая информация обрабатывается моделью, она преобразует его в вектор — набор чисел фиксированной длины, представляющий смысл или контекст. Векторная база данных хранит такие векторы и позволяет быстро находить похожие по смыслу векторы, что полезно при работе с LLM для поиска похожих текстов, улучшения поиска, семантического анализа и других задач.

### Примеры структуры векторной базы данных

1. **Запись данных:**
   - **ID** — уникальный идентификатор записи.
   - **Вектор** — массив чисел, который представляет семантическую информацию (например, текст).
   - **Метаданные** — дополнительные данные, такие как заголовки, типы, время создания и т.д.

2. **Пример записи:**
   ```json
   {
     "id": "12345",
     "vector": [0.12, -0.34, 0.56, ...],  // 768-мерный вектор (или другой размер)
     "metadata": {
       "title": "Запись о книге",
       "author": "Иван Иванов",
       "category": "Научная фантастика"
     }
   }
   ```

3. **Поиск** в векторной базе данных осуществляется по схожести между векторами (например, с использованием косинусного расстояния или евклидовой метрики), а не точного совпадения ключей, как в классической реляционной БД.

### Примеры запросов и ответов

1. **Пример запроса:**
   - **Запрос:** "Найди статьи, похожие на текст: 'Какие технологии используются в нейросетях?'"
   - **Преобразование:** Этот текст преобразуется в вектор LLM, скажем, `[0.23, -0.58, 0.77, ...]`.
   - **Ответ:** Векторная база данных находит наиболее похожие по смыслу векторы среди существующих записей. Например:
   
   ```json
   [
     {
       "id": "98765",
       "metadata": {
         "title": "Основы нейросетей",
         "author": "Петр Петров",
         "category": "Технологии"
       },
       "similarity": 0.92
     },
     {
       "id": "54321",
       "metadata": {
         "title": "Как работают нейросети?",
         "author": "Анна Смирнова",
         "category": "Машинное обучение"
       },
       "similarity": 0.88
     }
   ]
   ```

2. **Другой пример:**
   - **Запрос:** "Найди ближайшие результаты по вектору `[0.12, -0.34, 0.56, ...]`"
   - **Ответ:** Векторная база данных возвращает записи с наиболее похожими векторами.

   ```json
   [
     {
       "id": "23456",
       "vector": [0.11, -0.35, 0.57, ...],
       "metadata": {
         "title": "Краткий обзор машинного обучения",
         "author": "Дмитрий Иванов"
       },
       "similarity": 0.97
     },
     {
       "id": "34567",
       "vector": [0.10, -0.30, 0.55, ...],
       "metadata": {
         "title": "Использование нейросетей в бизнесе",
         "author": "Сергей Петров"
       },
       "similarity": 0.94
     }
   ]
   ```

### Примеры векторных баз данных:

1. **Pinecone** — облачная векторная база данных для машинного обучения и работы с LLM.
2. **FAISS** — библиотека для эффективного поиска по векторным представлениям, разработанная Facebook.
3. **Weaviate** — поисковая платформа с поддержкой векторных баз данных для использования в различных приложениях.
4. **Milvus** — распределённая векторная база данных для масштабируемого поиска векторов.

Эти базы данных позволяют интегрировать возможности семантического поиска и работы с большими моделями для сложных приложений, таких как чат-боты, рекомендательные системы, интеллектуальные поисковые системы и многое другое.


RAG (Retrieval-Augmented Generation) — это архитектура, используемая для улучшения работы языковых моделей (LLM, Large Language Models) путем объединения генеративных возможностей модели с внешними источниками данных или информации. Главная цель RAG — предоставить более точные и актуальные ответы за счет извлечения релевантных данных из внешних баз знаний.

### Как работает RAG:
1. **Извлечение данных (Retrieval)**: Когда модель получает запрос, система сначала использует поиск по внешней базе данных (например, документы, статьи, или базы знаний) для извлечения наиболее релевантной информации.
2. **Генерация ответа (Generation)**: Модель LLM использует извлеченные данные, чтобы сгенерировать ответ, часто комбинируя свои внутренние знания с найденной информацией. Это может значительно улучшить точность и актуальность ответов, особенно в случае, если запрос требует знания последних событий или специфических фактов, которые не включены в исходные данные модели.

### Пример структуры RAG системы:
1. **LLM**: Языковая модель (например, GPT-3 или GPT-4).
2. **Поисковая система или база данных**: Внешняя база данных, в которой осуществляется поиск (например, Elasticsearch или база знаний, хранящая текстовые документы).
3. **Модуль извлечения**: Использует модели, такие как BERT или специализированные поисковые алгоритмы для поиска релевантных документов на основе запроса пользователя.
4. **Модуль генерации**: После того, как необходимые документы извлечены, LLM использует их для генерации ответа, адаптированного к запросу.

### Пример запроса и ответа в RAG системе:

**Запрос**:  
*“Какой вклад Никола Тесла внес в развитие радиосвязи?”*

1. **Этап извлечения**: Система ищет документы, которые содержат информацию о вкладе Теслы в радиосвязь.
2. **Этап генерации**: Модель LLM, получив извлеченные данные (например, статью о патентах Теслы на радиосвязь), генерирует развернутый ответ, используя как свои внутренние знания, так и актуальные извлеченные данные.

**Ответ** (сгенерированный на основе внешних данных и знаний модели):  
*“Никола Тесла провел многочисленные эксперименты с радиосвязью в конце 19 века. В 1897 году он подал патенты на изобретения, связанные с передачей радиоволн. Хотя Тесла и не смог коммерциализировать свои идеи, его ранние работы стали важной основой для последующих разработок в области радиосвязи, включая радиопередатчики и системы беспроводной связи.”*

### Пример более сложного запроса:

**Запрос**:  
*“Что известно о новых подходах в лечении рака на 2024 год?”*

1. **Этап извлечения**: Система обращается к научным статьям, новостям или базам данных, чтобы получить самую актуальную информацию о лечении рака на 2024 год.
2. **Этап генерации**: LLM объединяет информацию из найденных источников с внутренними знаниями, создавая обширный и точный ответ.

**Ответ**:  
*“В 2024 году произошли значительные сдвиги в лечении рака, включая использование новых методов иммунотерапии, таких как T-клеточная терапия с рецепторами CAR. Кроме того, исследуются новые комбинации таргетных препаратов и биомаркеров, чтобы сделать терапию более персонализированной и эффективной.”*

RAG-система объединяет лучшие аспекты генеративных моделей и возможностей поиска, предоставляя пользователям более точные и обоснованные ответы на сложные запросы.



Системы RAG (Retrieval-Augmented Generation) применяются как в коммерческих, так и в открытых проектах. Вот несколько примеров как open-source, так и коммерческих решений:

### Open-Source проекты:

1. **Haystack (deepset.ai)**  
   Это популярный фреймворк для создания RAG-систем, разработанный для извлечения и генерации ответов на вопросы на основе внешних документов. Haystack поддерживает интеграцию с моделями генерации текста, такими как GPT, и моделями для поиска, такими как DPR (Dense Passage Retrieval) и Elasticsearch.
   
   - **Структура**: Haystack использует поисковую систему (например, Elasticsearch), извлекающую релевантные документы, и генеративные модели (например, GPT), которые формируют ответы на основе найденных данных.
   - **Пример использования**: Создание чат-ботов с глубоким знанием корпоративных документов или научных статей.
   - **Репозиторий**: [GitHub - Haystack](https://github.com/deepset-ai/haystack)

2. **OpenAI Retrieval Plugin**  
   Этот open-source плагин позволяет расширить модели GPT, интегрируя внешние источники данных через поисковые системы, такие как Pinecone или Elastic. Этот подход особенно полезен для создания приложений, где требуется актуальная информация, не присутствующая в обученных данных модели.
   
   - **Структура**: Использование Pinecone или Elasticsearch для поиска релевантных данных и OpenAI GPT для генерации ответа.
   - **Пример использования**: Интерактивные информационные панели, чат-боты с живым доступом к документам, исследовательские инструменты.
   - **Репозиторий**: [GitHub - OpenAI Retrieval Plugin](https://github.com/openai/retrieval-plugin)

3. **LangChain**  
   LangChain — это фреймворк для создания цепочек вызовов языковых моделей и компонентов извлечения информации. Он позволяет разработчикам создавать сложные рабочие процессы на базе LLM, комбинируя извлечение и генерацию контента.
   
   - **Структура**: Включает использование языковых моделей для генерации текстов и поисковых систем для получения информации из баз знаний.
   - **Пример использования**: Автоматизация бизнес-процессов, создание умных ассистентов, ботов, работающих с юридическими документами.
   - **Репозиторий**: [GitHub - LangChain](https://github.com/hwchase17/langchain)

### Коммерческие проекты:

1. **Microsoft Copilot**  
   Microsoft внедряет RAG-технологии в свои продукты, такие как Office 365 (Word, Excel, PowerPoint), чтобы повысить продуктивность пользователей. Copilot интегрирует модели GPT с корпоративными данными (например, документами в SharePoint или корпоративными базами знаний), чтобы помочь пользователям создавать контент, анализировать данные и получать рекомендации.
   
   - **Структура**: Используется поисковая система для получения данных из корпоративных хранилищ и GPT-модели для генерации содержательных ответов.
   - **Пример использования**: Автоматическая генерация отчетов в Excel на основе внешних данных, создание резюме документов в Word.

2. **Google Search with Bard**  
   Google Bard интегрирует RAG, комбинируя поисковые результаты с генерацией ответов, что позволяет пользователям получать сгенерированные на основе фактов ответы на запросы. Google использует свою поисковую систему для извлечения данных и большие языковые модели для создания ответов.
   
   - **Структура**: Поиск информации с помощью Google Search и генерация ответа с помощью Bard (LLM).
   - **Пример использования**: Объединение результатов поиска с языковой моделью для создания более качественных и целевых ответов на запросы пользователей.

3. **Meta (Facebook) BlenderBot 3**  
   BlenderBot 3 — это чат-бот от Meta, который использует RAG для извлечения данных из интернета в режиме реального времени и генерации ответов на их основе. Он может интегрировать новые знания и использовать их для улучшения взаимодействия с пользователями.
   
   - **Структура**: Комбинирует поисковые технологии с языковыми моделями (на базе GPT) для предоставления актуальной информации.
   - **Пример использования**: Интерактивные чат-боты, которые могут "учиться" на основе извлеченных данных из интернета.

4. **You.com**  
   You.com — поисковая система, использующая RAG для улучшения результатов поиска и генерации текстов. Она позволяет пользователям задавать вопросы и получать не просто результаты поиска, но и сгенерированные ответы, основанные на извлеченных данных.
   
   - **Структура**: Использует собственную поисковую систему и генеративные модели для ответа на запросы.
   - **Пример использования**: Мгновенные ответы на запросы пользователей с интеграцией информации из документов, статей и веб-страниц.

Эти проекты — отличный пример того, как RAG системы могут быть реализованы в различных масштабах, от узконаправленных инструментов до крупных коммерческих продуктов.