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