Compare commits

..

4 Commits

Author SHA1 Message Date
Miyamizu-MitsuhaSang 1c8036cb8d 前端适配 2025-11-07 14:52:30 +08:00
Miyamizu-MitsuhaSang ab437dc982 前端适配 2025-11-07 14:31:10 +08:00
Miyamizu-MitsuhaSang f8a2195a95 前端适配 2025-11-07 14:17:27 +08:00
Miyamizu-MitsuhaSang 5fa478f3a8 前端适配 2025-11-07 14:06:19 +08:00
4 changed files with 9 additions and 5 deletions

View File

@ -1,4 +1,3 @@
import os
from typing import Dict, Tuple
import httpx
@ -8,13 +7,15 @@ from starlette.requests import Request
from app.api.ai_assist import service
from app.api.ai_assist.ai_schemas import AIAnswerResponse, AIAnswerOut, AIQuestionRequest
from app.api.ai_assist.utils.redis_memory import get_chat_history, save_message, clear_chat_history
from app.api.article_director.service import reply_process
from app.models import User
from app.utils.security import get_current_user
from settings import settings
ai_router = APIRouter()
ZJU_AI_URL = 'https://chat.zju.edu.cn/api/ai/v1/chat/completions'
AI_API_KEY = os.getenv("AI_ASSIST_KEY")
AI_API_KEY = settings.AI_ASSIST_KEY
MAX_USAGE_PER = 100
CHAT_TTL = 7200
@ -85,9 +86,11 @@ async def dict_exp(
await save_message(redis, user_id, word, "user", question)
await save_message(redis, user_id, word, "assistant", answer)
answer = await reply_process(answer)
return AIAnswerOut(
word=word,
answer=ai_resp.get_answer(),
answer=answer,
model=ai_resp.model,
tokens_used=ai_resp.usage.total_tokens if ai_resp.usage else None
)

View File

@ -11,7 +11,7 @@ async def get_and_set_last_key(redis: Redis, word: str, user_id: str):
print(last_word)
# 如果上一次查的词和这次不同,就清空旧词的记录
if last_word and last_word.decode() != word:
if last_word and last_word != word:
await clear_chat_history(redis, user_id, last_word.decode())
# 更新当前词

View File

@ -78,4 +78,5 @@ async def reply_process(reply: str) -> str:
:return:
"""
reply.replace("**", "")
reply.replace("---", "")
return reply

View File

@ -11,7 +11,7 @@ class TransRequest(BaseModel):
@field_validator('from_lang', 'to_lang')
@classmethod
def validate_lang(cls, v):
allowed_langs = {'auto', 'fr', 'jp', 'zh'}
allowed_langs = {'auto', 'fr', 'jp', 'zh', 'en'}
if v not in allowed_langs:
raise ValueError(f'Unsupported language: {v}')
return v