Ollama智能聊天客户端

一个与Ollama本地模型集成的智能聊天客户端,能够自动调用工具处理用户请求并提供最终回答。

  • by voharaa
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 AndriyVohar/mcp-provider-python

使用说明

MCP Сервер для Ollama

Розумний MCP сервер з інструментами, інтегрований з локальною моделлю Ollama.

📁 Файли

mcp-provider-python/
├── mcp_server.py          # MCP сервер з інструментами
├── smart_chat_client.py   # 🚀 Розумний клієнт (основне використання)
├── requirements.txt       # Залежності Python
└── README.md              # Цей файл

📋 Вимоги

1. Встановлена Ollama

Завантажте та встановіть Ollama з https://ollama.ai

2. Встановлена Python модель

ollama pull gemma3:4b

3. Python залежності

pip install -r requirements.txt

🚀 Як Використовувати (Smart Chat Client)

Крок 1: Запустіть Ollama

ollama serve

Ollama буде запущена на http://localhost:11434

Крок 2: У другому терміналі запустіть клієнт

cd /home/thinkpad/Documents/mcp-provider-python
python3 smart_chat_client.py

Крок 3: Виберіть модель

📋 Доступні моделі Ollama: gemma3:4b, mistral, neural-chat, yi та інші
🎯 Яку модель використовувати? (за замовчуванням 'gemma3:4b'): gemma3:4b

Крок 4: Спілкуйтесь з моделлю

💬 Ви (або 'exit' для виходу): Яка погода в Києві?

🤔 Ollama обробляє ваше повідомлення...

[Ітерація 1]
🔧 Використовую інструмент: search_duckduckgo({"query": "погода в Київі сьогодні"})
✅ Результат: 📌 погода Київ: Сьогодні в Київі хмарно, +15°C...

[Ітерація 2] - ОСТАТОЧНА
🤖 Остаточна відповідь Ollama:
В Київі сьогодні хмарно, температура близько 15°C. Рекомендую взяти куртку! 🧥

🧠 Як це Працює

  1. Ви запитуєте модель про щось
  2. Ollama аналізує ваш запит
  3. Модель вирішує, які інструменти їй потрібні
  4. Клієнт автоматично виконує ці інструменти
  5. Результати повертаються до моделі
  6. Ollama дає остаточну відповідь українською мовою

🔧 Доступні Інструменти

Назва Опис Параметри
sum Обчислює суму двох чисел a (int), b (int)
multiply Множить два числа a (float), b (float)
get_date Поточна дата -
get_current_time Поточний час -
search_duckduckgo Пошук в інтернеті query (str), max_results (int)
read_notes Читає notes.txt -

📝 Приклади Запитів

💬 Скільки буде 15 помножити на 3?
💬 Яка сьогодні дата?
💬 Яка погода в Львові?
💬 Розкажи мені про Python
💬 Котра година?

📝 Додавання Нових Інструментів

У файлі mcp_server.py додайте:

@mcp.tool(name="your_tool", description="Опис вашого інструменту")
def your_function(param: str) -> str:
    """Детальний опис функції."""
    return f"Результат для {param}"

Модель автоматично буде мати доступ до нового інструменту!

Приклад чату:

🚀 Розумний чат клієнт з інструментами
======================================================================

📋 Доступні моделі Ollama: llama2, mistral, neural-chat, yi та інші
🎯 Яку модель використовувати? (за замовчуванням 'gemma3:4b'): 
✅ Завантажено 6 інструментів від MCP сервера
Processing request of type ListToolsRequest

✅ Готово! Тепер модель gemma3:4b може сама викликати інструменти.
======================================================================

======================================================================
💬 Ви (або 'exit' для виходу): Дональд Трамп це?

🤔 Ollama обробляє ваше повідомлення...


[Ітерація 1]
  → Знайден виклик інструменту: search_duckduckgo({'query': 'Who is Donald Trump?', 'max_results': 5})
🔧 Використовую інструмент: search_duckduckgo({'query': 'Who is Donald Trump?', 'max_results': 5})
Processing request of type CallToolRequest
HTTP Request: GET https://api.duckduckgo.com/?q=Who+is+Donald+Trump%3F&format=json&no_html=1&skip_disambig=1 "HTTP/1.1 202 Accepted"
✅ Результат: 📌 Result: Donald John Trump is an American politician, media personality, and businessman who is the...

[Ітерація 2]

🤖 Ollama дала фінальну відповідь (без використання інструментів)

======================================================================
🤖 Остаточна відповідь Ollama:
----------------------------------------------------------------------
Звісно! Дональд Трамп – це американський політик, телевізійний персоналіст та бізнесмен, який був 47-м президентом США. Він належав до Республіканської партії та обіймав посаду президента з 2017 по 2021 рік. Він народився у заможній родині в Нью-Йорку та закінчив Пенсільванський університет у 1968 році. Раніше він керував своєю сім’яною нерухомістю, яка називалася "Trump Organization", і займався будівництвом хмарочосів, готелів, казино та гольф-полів. Також він розпочав бічні проекти, здебільшого ліцензуючи назву "Trump". З 2004 по 2015 рік він був ведучим телешоу "The Apprentice", що допомогло йому стати відомим як мільярдер. Він позиціонувався як політичний «аутсайдер» і переміг на президентських виборах 2016 року кандидатуру Демократичної партії Гілларі Клінтон.

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

======================================================================
💬 Ви (або 'exit' для виходу): Яка сьогодні точна дата?

🤔 Ollama обробляє ваше повідомлення...


[Ітерація 1]
Processing request of type CallToolRequest
  → Знайден виклик інструменту: get_date({})
🔧 Використовую інструмент: get_date({})
✅ Результат: 2025-11-19...

[Ітерація 2]

🤖 Ollama дала фінальну відповідь (без використання інструментів)

======================================================================
🤖 Остаточна відповідь Ollama:
----------------------------------------------------------------------
Звісно! Сьогодні 19 листопада 2025 року. 😊

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

======================================================================
💬 Ви (або 'exit' для виходу): Що знаходиться у нотатках? опиши коротко

🤔 Ollama обробляє ваше повідомлення...


[Ітерація 1]
  → Знайден виклик інструменту: read_notes({})
🔧 Використовую інструмент: read_notes({})
✅ Результат: «М3ҐАН 2.0» (англ. M3GAN 2.0) — американський науково-фантастичний фільм жахів, продовження картини ...

[Ітерація 2]
Processing request of type CallToolRequest

🤖 Ollama дала фінальну відповідь (без використання інструментів)

======================================================================
🤖 Остаточна відповідь Ollama:
----------------------------------------------------------------------
З радістю! Ось короткий опис того, що міститься в нотатках:

"М3ҐАН 2.0" – це науково-фантастичний фільм жахів, продовження "М3ҐАН", де розповідається про створення нового робота, який має знищити іншого робота. У фільмі з'являються нові персонажі, складні технологічні рішення та багато небезпечних ситуацій. Сюжет розгортається навколо боротьби між людьми та штучним інтелектом, з акцентом на створення нового, більш небезпечного, робота на зразок M3GAN.

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

======================================================================
💬 Ви (або 'exit' для виходу):