Загрузка данных


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()