Добавлена интеграция с Qdrant для поиска по векторам

This commit is contained in:
2026-04-14 16:05:32 +03:00
parent b5fe2623b3
commit 4f78606b2c
10 changed files with 471 additions and 9 deletions

View File

@@ -22,6 +22,7 @@
1. ✅ Создать Memory Bank структуру
2. 🔄 Продолжить документирование архитектуры и паттернов
3. ⏳ Обновлять Memory Bank после значимых изменений
4. ⏳ Добавить Qdrant в Memory Bank
## 🔍 Важные решения
@@ -61,6 +62,11 @@
"Token": "",
"Username": "",
"SpaceKey": ""
},
"Qdrant": {
"Url": "", // URL Qdrant сервера
"ApiKey": "", // Опционально для авторизации
"DefaultCollection": "knowledge" // Default коллекция для векторного поиска
}
}
```

View File

@@ -125,6 +125,22 @@ TUI показывает:
- Статус подов
- Последние events
- Кнопки действий
- Векторные индексы Qdrant (если используется)
```
### Сценарий 4: Поиск знаний через Qdrant
```
User (via AI): "Как настроить деплой nginx?"
AI вызывает: qdrantKnowledgeTools/search({
query: "nginx деплой настройка",
vector_embedding: [0.1, 0.2, ...]
})
Qdrant возвращает релевантные документы
AI предоставляет из Confluence/документации
```
## Метрики успеха
@@ -133,6 +149,7 @@ TUI показывает:
|---------|------|
| Время на задачу (Jira) | -50% после интеграции |
| Время на задачу (K8s) | -70% после интеграции |
| Время на поиск знаний | -60% с Qdrant |
| Довольство пользователей | >4.5/5 |
| Количество инцидентов | Снизить на -30% |
@@ -163,4 +180,4 @@ TUI показывает:
---
*Документ описывает почему проект существует и как должен работать пользователь.*
*Документ описывает почему проект существует и как должен работать пользователь.*

View File

@@ -50,6 +50,15 @@
- `create_branch` — создать ветку
- `delete_branch` — удалить ветку
### Qdrant Integration (Vector DB)
- ✅ CRUD коллекции (создание, удаление)
- ✅ Добавление/обновление документов (upsert)
- ✅ Векторный поиск по коллекции
- ✅ Удаление документов по ID
- ✅ Поддержка метрик (Cosine, Euclid, Dot)
- ✅ Поддержка API ключа (опционально)
### MCP Server
- ✅ HTTP Transport MCP 1.2.0
@@ -168,7 +177,7 @@
**Состояние**: Development
**Последний commit**: `e96bab114ea1a58f3ea7bd5ab40d4645d456cd8f`
**Последний commit**: `b5fe2623b3d14333a7138c22456862bff3781b82`
**Что работает**: Все основные функциональности готовы

View File

@@ -18,16 +18,17 @@
┌─────────────────────────────────────────────────────────┐
│ Services Layer (IToolModule) │
│ ┌──────────┐ ┌───────────────┐ ┌────────────────────┐
│ │JiraTools │ │ConfluenceTools│ │KubernetesTools │
│ └──────────┘ └───────────────┘ └────────────────────┘
│ ┌──────────┐ ┌───────────────┐ ┌────────────────────┐ ┌─────┐
│ │JiraTools │ │ConfluenceTools│ │KubernetesTools │ │Qdrant│
│ └──────────┘ └───────────────┘ └────────────────────┘ └─────┘
│ └────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ External API Layer │
│ ┌──────────┐ ┌───────────────┐ ┌────────────────────┐
│ │ Jira API │ │Confluence API │ │ K8s API │ │
│ └──────────┘ └───────────────┘ └────────────────────┘ │
│ ┌──────────┐ ┌───────────────┐ ┌────────────────────┐ ┌────┐
│ │ Jira API │ │Confluence API │ │ K8s API │ │Qdr│
│ └──────────┘ └───────────────┘ └────────────────────┘ └───┘
└─────────────────────────────────────────────────────────┘
```
@@ -289,4 +290,33 @@ Console.WriteLine
---
*Файл описывает систему архитектуры, ключевые компоненты и потоки данных. Обновлять при введении новых архитектурных решений.*
### Qdrant Client Provider Pattern
**File**: `LazyBear.MCP/Services/Qdrant/QdrantClientProvider.cs`
```csharp
public class QdrantClientProvider
{
private readonly IConfiguration _config;
public QdrantClient GetClient()
{
// Конфиг из appsettings.json
var url = _config["Qdrant:Url"];
var apiKey = _config["Qdrant:ApiKey"] ?? string.Empty;
return new QdrantClient(url, apiKey);
}
}
```
**Fallback порядок**:
1. Explicit URL из конфига
2. Environment variable QDRANT_URL
3. Localhost default
**Ответственность**: Создание клиентов Qdrant с поддержкой API ключа (опционально)
---
*Файл описывает систему архитектуры, ключевые компоненты и потоки данных. Обновлять при введении новых архитектурных решений.*

View File

@@ -13,6 +13,7 @@
| **Model Context Protocol** | 1.2.0 | MCP стандарт |
| **Kubernetes Client** | 13+ | .NET SDK для K8s |
| **RazorConsole** | Latest | TUI framework |
| **Qdrant.Client** | Latest | Векторный поиск,知识库 |
### Файлы конфигурации
@@ -101,6 +102,10 @@ LazyBear.MCP/
│ │ └── JiraClientProvider.cs
│ ├── Confluence/
│ │ └── ConfluencePagesTools.cs
│ ├── Qdrant/
│ │ ├── QdrantClientProvider.cs
│ │ ├── QdrantKnowledgeTools.cs
│ │ └── QdrantToolModule.cs
│ └── Kubernetes/
│ ├── K8sConfigTools.cs
│ ├── K8sDeploymentTools.cs
@@ -215,6 +220,13 @@ echo '{"jsonrpc":"2.0","id":1,"method":"k8sPodsTools/getPodStatus","params":{"na
- `Jira:Url` обязателен, иначе инициализация провайдера может упасть
- `Kubernetes:KubeconfigPath` может быть пустым — используется fallback
- `Qdrant:Url` обязателен для векторного поиска, если используется
- `Qdrant:ApiKey` опционален, но рекомендуется для безопасного доступа
### Qdrant Gotchas
- Косинусная метрика — default для векторного поиска
- Размер вектора должен быть фиксированным при создании коллекции
### RazorConsole Gotchas