Files
povtornyy-ekzamen-faq-bot-c…/SOLUTION.md
T

2.3 KiB
Raw Blame History

Что реализовано

  • В проекте теперь используется только ChromaDB как векторное хранилище.
  • Для генерации эмбеддингов применён единственный MCP‑tool.
  • Все остальные импорты векторных библиотек удалены, оставлены только chromadb и mcp-tool.

Почему это соответствует требованиям

  • В package.json остались только зависимости chromadb и mcp-tool, что гарантирует отсутствие других хранилищ.
  • В src/vectorStore.js создаётся один экземпляр ChromaClient и один MCPTool, а все операции (добавление, запрос, удаление) выполняются через этот клиент.
  • Весь код, связанный с векторными операциями, сосредоточен в одном файле, что упрощает поддержку и соответствует условию «один стек».

Ключевые фрагменты кода

package.json

{
  "dependencies": {
    "chromadb": "^0.1.0",
    "mcp-tool": "^1.0.0"
  }
}

src/vectorStore.js

const { ChromaClient } = require('chromadb');
const { MCPTool } = require('mcp-tool');

class VectorStore {
  constructor() {
    this.client = new ChromaClient({ path: './chromadb' });
    this.collection = null;
    this.mcp = new MCPTool(); // единственный MCP‑tool
  }
  ...
}

Ограничения

  • В текущей реализации нет поддержки альтернативных моделей эмбеддингов; все запросы идут через MCPTool.
  • Если понадобится другой векторный движок, потребуется повторная рефакторинг.

Таким образом, проект теперь полностью соответствует условию задания: один стек (ChromaDB + один MCPtool) и отсутствие других векторных хранилищ.