前端适配
This commit is contained in:
parent
8884e92f2d
commit
606675ab33
|
|
@ -48,7 +48,9 @@ Authorization: Bearer <your_jwt_token>
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"id": "integer",
|
"id": "integer",
|
||||||
"message": "register success"
|
"message": "register success",
|
||||||
|
"access_token" : "string",
|
||||||
|
"token_type": "bearer"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
@ -102,7 +104,8 @@ Authorization: Bearer <your_jwt_token>
|
||||||
"user": {
|
"user": {
|
||||||
"id": "integer",
|
"id": "integer",
|
||||||
"username": "string",
|
"username": "string",
|
||||||
"is_admin": "boolean"
|
"is_admin": "boolean",
|
||||||
|
"lang_pref": "str",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
@ -1195,4 +1198,4 @@ curl -X GET "http://127.0.0.1:8000/api/test/pron/start?count=5&lang=fr-FR" \
|
||||||
---
|
---
|
||||||
|
|
||||||
*文档版本: 2.0*
|
*文档版本: 2.0*
|
||||||
*最后更新: 2025年9月22日*
|
*最后更新: 2025年11月7日*
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ from pydantic import BaseModel
|
||||||
|
|
||||||
|
|
||||||
class UserArticleRequest(BaseModel):
|
class UserArticleRequest(BaseModel):
|
||||||
theme: Optional[str]
|
theme: Optional[str] = None
|
||||||
content: str
|
content: str
|
||||||
article_type: str
|
article_type: str
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,7 @@ async def article_director(
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
redis = request.app.state.redis
|
redis = request.app.state.redis
|
||||||
|
# print(upload_article)
|
||||||
|
|
||||||
article_lang = "法语" if lang == "fr-FR" else "日语"
|
article_lang = "法语" if lang == "fr-FR" else "日语"
|
||||||
|
|
||||||
|
|
@ -48,6 +49,8 @@ async def article_director(
|
||||||
# 取出回答内容
|
# 取出回答内容
|
||||||
assistant_reply = completion.choices[0].message.content
|
assistant_reply = completion.choices[0].message.content
|
||||||
|
|
||||||
|
assistant_reply = await service.reply_process(assistant_reply)
|
||||||
|
|
||||||
# 保存模型回复
|
# 保存模型回复
|
||||||
session.append({"role": "assistant", "content": assistant_reply})
|
session.append({"role": "assistant", "content": assistant_reply})
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@ async def get_session(redis_client: Redis, user_id: str) -> List[Dict[str, str]]
|
||||||
return json.loads(data)
|
return json.loads(data)
|
||||||
else:
|
else:
|
||||||
# 如果没有记录,创建带 system prompt 的初始会话
|
# 如果没有记录,创建带 system prompt 的初始会话
|
||||||
return [{"role": "system", "content": SYSTEM_PROMPT}]
|
return [{"role": "system", "content": SYSTEM_PROMPT},]
|
||||||
|
|
||||||
|
|
||||||
async def save_session(redis_client: Redis, user_id: str, session: List[Dict[str, str]]):
|
async def save_session(redis_client: Redis, user_id: str, session: List[Dict[str, str]]):
|
||||||
|
|
@ -70,3 +70,12 @@ async def save_session(redis_client: Redis, user_id: str, session: List[Dict[str
|
||||||
async def reset_session(redis_client: Redis, user_id: str):
|
async def reset_session(redis_client: Redis, user_id: str):
|
||||||
"""清空用户上下文"""
|
"""清空用户上下文"""
|
||||||
await redis_client.delete(f"session:{user_id}")
|
await redis_client.delete(f"session:{user_id}")
|
||||||
|
|
||||||
|
async def reply_process(reply: str) -> str:
|
||||||
|
"""
|
||||||
|
对原始回答进行字符串预处理
|
||||||
|
:param reply: 大模型的原始回答
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
reply.replace("**", "")
|
||||||
|
return reply
|
||||||
|
|
|
||||||
|
|
@ -188,7 +188,7 @@ async def search_idiom_list(query_idiom: ProverbSearchRequest, user=Depends(get_
|
||||||
raise HTTPException(status_code=400, detail="Dict language Error")
|
raise HTTPException(status_code=400, detail="Dict language Error")
|
||||||
|
|
||||||
mapping_query, lang, is_kangji = await service.detect_language(text=query_idiom.query)
|
mapping_query, lang, is_kangji = await service.detect_language(text=query_idiom.query)
|
||||||
query = all_in_kana(text=query_idiom.query) if lang == "jp" else query_idiom.query
|
query = query_idiom.query
|
||||||
|
|
||||||
# ✅ 并发任务列表
|
# ✅ 并发任务列表
|
||||||
tasks = [
|
tasks = [
|
||||||
|
|
|
||||||
|
|
@ -44,9 +44,20 @@ async def register(req: Request, user_in: UserIn):
|
||||||
language=lang_pref,
|
language=lang_pref,
|
||||||
encrypted_phone=encrypted_phone,
|
encrypted_phone=encrypted_phone,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
payload = {
|
||||||
|
"user_id": new_user.id,
|
||||||
|
"exp": datetime.now(timezone.utc) + timedelta(hours=20), # 设置过期时间
|
||||||
|
"is_admin": new_user.is_admin,
|
||||||
|
}
|
||||||
|
|
||||||
|
token = jwt.encode(payload, settings.SECRET_KEY, algorithm="HS256")
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"id": new_user.id,
|
"id": new_user.id,
|
||||||
"message": "register success",
|
"message": "register success",
|
||||||
|
"access_token": token,
|
||||||
|
"token_type": "bearer",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -96,7 +107,7 @@ async def user_modification(updated_user: UpdateUserRequest, current_user: Tuple
|
||||||
|
|
||||||
@users_router.post("/login")
|
@users_router.post("/login")
|
||||||
async def user_login(user_in: UserLoginRequest):
|
async def user_login(user_in: UserLoginRequest):
|
||||||
user = await User.get_or_none(name=user_in.name)
|
user = await User.get_or_none(name=user_in.name).prefetch_related("language")
|
||||||
if not user:
|
if not user:
|
||||||
raise HTTPException(status_code=404, detail="用户不存在")
|
raise HTTPException(status_code=404, detail="用户不存在")
|
||||||
|
|
||||||
|
|
@ -106,7 +117,7 @@ async def user_login(user_in: UserLoginRequest):
|
||||||
# token 中放置的信息
|
# token 中放置的信息
|
||||||
payload = {
|
payload = {
|
||||||
"user_id": user.id,
|
"user_id": user.id,
|
||||||
"exp": datetime.now(timezone.utc) + timedelta(hours=2), # 设置过期时间
|
"exp": datetime.now(timezone.utc) + timedelta(hours=20), # 设置过期时间
|
||||||
"is_admin": user.is_admin,
|
"is_admin": user.is_admin,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -118,7 +129,8 @@ async def user_login(user_in: UserLoginRequest):
|
||||||
"user": {
|
"user": {
|
||||||
"id": user.id,
|
"id": user.id,
|
||||||
"username": user.name,
|
"username": user.name,
|
||||||
"is_admin": user.is_admin
|
"is_admin": user.is_admin,
|
||||||
|
"lang_pref": user.language.code
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue