import telebot
import requests
# Сюда вставляешь токен, который тебе скинул @BotFather (внутри кавычек!)
BOT_TOKEN = 'СЮДА_ВСТАВЬ_ТОКЕН'
# Имя твоей модели. У тебя на скрине AnythingLLM было написано llama3.1:8b
MODEL_NAME = 'llama3.1:8b'
bot = telebot.TeleBot(BOT_TOKEN)
# Промт-настройка, чтобы модель вела себя адекватно и выдавала только краткие ответы на тесты
SYSTEM_PROMPT = (
"Ты — медицинский ассистент. Я буду скидывать тебе тесты по физиологии и биохимии. "
"Твоя задача — отвечать максимально кратко, выдавая только правильный вариант ответа. "
"Например: '1) А) Натрийуретический пептид'. Без лишних вступлений и лекций."
)
@bot.message_handler(func=lambda message: True)
def handle_message(message):
user_text = message.text
bot.send_chat_action(message.chat.id, 'typing')
# Стучимся в твой локальный сервер Ollama
url = "http://localhost:11434/api/generate"
# Формируем запрос с учетом системной настройки
full_prompt = f"{SYSTEM_PROMPT}\n\nПользователь: {user_text}\nОтвет:"
payload = {
"model": MODEL_NAME,
"prompt": full_prompt,
"stream": False
}
try:
response = requests.post(url, json=payload)
if response.status_code == 200:
ai_response = response.json().get('response', 'Ошибка разбора ответа')
bot.reply_to(message, ai_response)
else:
bot.reply_to(message, f"Ошибка Ollama: Код {response.status_code}")
except Exception as e:
bot.reply_to(message, f"Не удалось связаться с Ollama. Проверь, запущен ли лаунчер! Ошибка: {e}")
print("Бот успешно запущен и ждет тесты в Телеграме...")
bot.infinity_polling()