Этот проект подключает локального LLM (например, Qwen) к таким инструментам, как калькулятор или база знаний, через протокол MCP . Помощник автоматически обнаруживает и вызывает эти инструменты, чтобы помочь ответить на запросы пользователя.
📦 Особенности
🔧 Выполнение инструмента через сервер MCP
🧠 Локальная интеграция LLM через HTTP или OpenAI SDK
📚 Поддержка базы знаний (
data.json)⚡ Поддерживает транспорты
stdioиsse
Related MCP server: MCP Documentation Server
🗂 Файлы проекта
Файл | Описание |
| Регистрирует инструменты и запускает сервер MCP |
| Использует |
| Использует совместимый с OpenAI SDK для LLM + логику вызова инструментов |
| Клиент MCP, использующий stdio |
| Клиент MCP с использованием SSE |
| База знаний вопросов и ответов |
📥 Установка
Требования
Питон 3.8+
Установить зависимости:
pip install -r requirements.txtrequirements.txt
aiohttp==3.11.18
nest_asyncio==1.6.0
python-dotenv==1.1.0
openai==1.77.0
mcp==1.6.0🚀 Начало работы
1. Запустите MCP-сервер
python server.pyЭто запустит ваш сервер инструментов с такими функциями, как add , multiply и get_knowledge_base .
2. Запустить клиент
Вариант A: HTTP-клиент (локальный LLM через необработанный API)
python client-http.pyВариант B: клиент OpenAI SDK
python client-openai.pyВариант C: стандартный транспорт
python client-stdio.pyВариант D: транспорт SSE
Убедитесь, что server.py устанавливает:
transport = "sse"Затем выполните:
python client-sse.py💬 Примеры подсказок
Вызов математического инструмента
What is 8 times 3?Ответ:
Eight times three is 24.Вопрос базы знаний
What are the healthcare benefits available to employees in Singapore?Ответ будет включать соответствующий ответ из data.json .
📁 Пример: data.json
[
{
"question": "What is Singapore's public holiday schedule?",
"answer": "Singapore observes several public holidays..."
},
{
"question": "How do I apply for permanent residency in Singapore?",
"answer": "Submit an online application via the ICA website..."
}
]🔧 Конфигурация
Внутри client-http.py или clientopenai.py обновите следующее:
LOCAL_LLM_URL = "..."
TOKEN = "your-api-token"
LOCAL_LLM_MODEL = "your-model"Убедитесь, что ваш LLM обслуживает конечные точки API, совместимые с OpenAI.
🧹 Уборка
Клиенты обрабатывают вызовы и ответы инструментов автоматически. Вы можете остановить сервер или клиента с помощью Ctrl+C .
🪪 Лицензия
Лицензия MIT. См. файл LICENSE .