Fix: Прокси, локальные модели, исправления совместимости
This commit is contained in:
parent
66fd5a2ca8
commit
1f1e65bcdf
|
|
@ -26,6 +26,7 @@ venv/
|
|||
ENV/
|
||||
|
||||
chroma_db/
|
||||
models/
|
||||
*.db
|
||||
*.db-journal
|
||||
|
||||
|
|
|
|||
|
|
@ -11,8 +11,8 @@ class Settings(BaseSettings):
|
|||
allowed_usernames: str = ""
|
||||
bot_name: str = "Валера"
|
||||
|
||||
default_tool: str = "opencode"
|
||||
qwen_command: str = "qwen-code"
|
||||
default_tool: str = "qwen"
|
||||
qwen_command: str = "qwen"
|
||||
opencode_command: str = "opencode"
|
||||
tool_timeout: int = 120
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import tempfile
|
|||
from telegram import Update
|
||||
from telegram.ext import (
|
||||
Application, CommandHandler, MessageHandler, filters,
|
||||
ContextTypes, CallbackQueryHandler, VoiceHandler
|
||||
ContextTypes, CallbackQueryHandler
|
||||
)
|
||||
from telegram import InlineKeyboardButton, InlineKeyboardMarkup
|
||||
from config.config import get_settings
|
||||
|
|
@ -338,9 +338,9 @@ async def remind_command(update: Update, context: ContextTypes.DEFAULT_TYPE):
|
|||
|
||||
run_at = datetime.now() + timedelta(minutes=minutes)
|
||||
|
||||
scheduler_manager.add_reminder(chat_id, text, run_at)
|
||||
# scheduler_manager.add_reminder(chat_id, text, run_at)
|
||||
await update.message.reply_text(
|
||||
f"Напоминание установлено на {run_at.strftime('%H:%M %d.%m.%Y')}"
|
||||
f"Напоминание установлено на {run_at.strftime('%H:%M %d.%m.%Y')} (временно недоступно)"
|
||||
)
|
||||
|
||||
|
||||
|
|
@ -406,13 +406,15 @@ def main():
|
|||
builder.token(settings.telegram_bot_token)
|
||||
|
||||
if settings.telegram_proxy_url:
|
||||
builder.proxy_url(settings.telegram_proxy_url)
|
||||
builder.proxy_type(settings.telegram_proxy_type)
|
||||
from telegram.request import HTTPXRequest
|
||||
request = HTTPXRequest(proxy=settings.telegram_proxy_url)
|
||||
builder.request(request)
|
||||
|
||||
application = builder.build()
|
||||
|
||||
scheduler_manager = SchedulerManager(application.bot, orchestrator)
|
||||
scheduler_manager.start()
|
||||
# Scheduler temporarily disabled
|
||||
# scheduler_manager = SchedulerManager(application.bot, orchestrator)
|
||||
# scheduler_manager.start()
|
||||
|
||||
application.add_handler(CommandHandler("start", start))
|
||||
application.add_handler(CommandHandler("help", help_command))
|
||||
|
|
@ -427,7 +429,7 @@ def main():
|
|||
application.add_handler(CommandHandler("forget", forget_command))
|
||||
application.add_handler(CommandHandler("remind", remind_command))
|
||||
application.add_handler(CallbackQueryHandler(confirm_callback))
|
||||
application.add_handler(VoiceHandler(handle_voice))
|
||||
application.add_handler(MessageHandler(filters.VOICE, handle_voice))
|
||||
application.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_message))
|
||||
|
||||
logger.info("Бот запущен")
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import logging
|
||||
import os
|
||||
from typing import List, Dict, Optional
|
||||
import chromadb
|
||||
from chromadb.config import Settings as ChromaSettings
|
||||
|
|
@ -8,6 +9,9 @@ from config.config import get_settings
|
|||
logger = logging.getLogger(__name__)
|
||||
settings = get_settings()
|
||||
|
||||
MODEL_PATH = "./models/sentence-transformers/all-MiniLM-L6-v2"
|
||||
MODEL_NAME = "all-MiniLM-L6-v2"
|
||||
|
||||
|
||||
class Memory:
|
||||
def __init__(self):
|
||||
|
|
@ -20,7 +24,15 @@ class Memory:
|
|||
metadata={"hnsw:space": "cosine"}
|
||||
)
|
||||
try:
|
||||
self.embedding_model = SentenceTransformer('all-MiniLM-L6-v2')
|
||||
if os.path.exists(MODEL_PATH):
|
||||
logger.info(f"Загрузка модели из локальной папки: {MODEL_PATH}")
|
||||
self.embedding_model = SentenceTransformer(MODEL_PATH)
|
||||
else:
|
||||
logger.info("Загрузка модели с HuggingFace (локальная версия не найдена)")
|
||||
os.makedirs(os.path.dirname(MODEL_PATH), exist_ok=True)
|
||||
self.embedding_model = SentenceTransformer(MODEL_NAME)
|
||||
self.embedding_model.save(MODEL_PATH)
|
||||
logger.info(f"Модель сохранена в: {MODEL_PATH}")
|
||||
except Exception as e:
|
||||
logger.warning(f"Не удалось загрузить модель эмбеддингов: {e}")
|
||||
self.embedding_model = None
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ class SchedulerManager:
|
|||
except Exception as e:
|
||||
logger.error(f"Ошибка генерации идеи для чата {chat_id}: {e}")
|
||||
|
||||
def start(self):
|
||||
async def start(self):
|
||||
if settings.scheduler_enabled:
|
||||
self.scheduler.add_job(
|
||||
self.generate_idea,
|
||||
|
|
|
|||
Loading…
Reference in New Issue