搜索次数接口
This commit is contained in:
parent
2c893df2cf
commit
055cad882b
|
|
@ -11,7 +11,7 @@ async def get_and_set_last_key(redis: Redis, word: str, user_id: str):
|
||||||
print(last_word)
|
print(last_word)
|
||||||
|
|
||||||
# 如果上一次查的词和这次不同,就清空旧词的记录
|
# 如果上一次查的词和这次不同,就清空旧词的记录
|
||||||
if last_word and last_word != word:
|
if last_word and last_word.decode() != word:
|
||||||
await clear_chat_history(redis, user_id, last_word.decode())
|
await clear_chat_history(redis, user_id, last_word.decode())
|
||||||
|
|
||||||
# 更新当前词
|
# 更新当前词
|
||||||
|
|
|
||||||
|
|
@ -67,7 +67,10 @@ async def search(request: Request, body: SearchRequest, user=Depends(get_current
|
||||||
:param user:
|
:param user:
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
|
redis = request.app.state.redis
|
||||||
|
|
||||||
query = body.query
|
query = body.query
|
||||||
|
|
||||||
if body.language == 'fr':
|
if body.language == 'fr':
|
||||||
query = normalize_text(query)
|
query = normalize_text(query)
|
||||||
word_contents = await (
|
word_contents = await (
|
||||||
|
|
@ -100,6 +103,9 @@ async def search(request: Request, body: SearchRequest, user=Depends(get_current
|
||||||
eng_explanation=wc.eng_explanation,
|
eng_explanation=wc.eng_explanation,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
await service.search_time_updates(redis)
|
||||||
|
|
||||||
return WordSearchResponse(
|
return WordSearchResponse(
|
||||||
query=query,
|
query=query,
|
||||||
pos=pos_contents,
|
pos=pos_contents,
|
||||||
|
|
@ -130,6 +136,9 @@ async def search(request: Request, body: SearchRequest, user=Depends(get_current
|
||||||
example=wc.example,
|
example=wc.example,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
await service.search_time_updates(redis)
|
||||||
|
|
||||||
return WordSearchResponse(
|
return WordSearchResponse(
|
||||||
query=query,
|
query=query,
|
||||||
pos=pos_contents,
|
pos=pos_contents,
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ import re
|
||||||
from typing import List, Tuple, Dict, Literal, Type
|
from typing import List, Tuple, Dict, Literal, Type
|
||||||
|
|
||||||
from fastapi import HTTPException
|
from fastapi import HTTPException
|
||||||
|
from redis.asyncio import Redis
|
||||||
from tortoise import Tortoise, Model
|
from tortoise import Tortoise, Model
|
||||||
from tortoise.expressions import Q
|
from tortoise.expressions import Q
|
||||||
|
|
||||||
|
|
@ -12,6 +13,12 @@ from app.utils.textnorm import normalize_text
|
||||||
from settings import TORTOISE_ORM
|
from settings import TORTOISE_ORM
|
||||||
|
|
||||||
|
|
||||||
|
async def search_time_updates(redis: Redis) -> None:
|
||||||
|
key = "search_times"
|
||||||
|
|
||||||
|
await redis.incr(key, 1)
|
||||||
|
|
||||||
|
|
||||||
async def detect_language(text: str) -> Tuple[str, str, bool]:
|
async def detect_language(text: str) -> Tuple[str, str, bool]:
|
||||||
"""
|
"""
|
||||||
自动检测输入语言:
|
自动检测输入语言:
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
#TODO 更新接口文档
|
||||||
|
from fastapi import APIRouter
|
||||||
|
from starlette.requests import Request
|
||||||
|
|
||||||
|
ulit_router = APIRouter()
|
||||||
|
|
||||||
|
@ulit_router.get("/search_time", tags=["search times"])
|
||||||
|
async def get_search_time(request: Request):
|
||||||
|
redis = request.app.state.redis
|
||||||
|
|
||||||
|
key = f"search_time"
|
||||||
|
|
||||||
|
count = int(await redis.get(key))
|
||||||
|
if not count:
|
||||||
|
await redis.set(key, value=0)
|
||||||
|
count = 0
|
||||||
|
|
||||||
|
return {
|
||||||
|
"count": count,
|
||||||
|
}
|
||||||
3
main.py
3
main.py
|
|
@ -15,6 +15,7 @@ from app.api.redis_test import redis_test_router
|
||||||
from app.api.search_dict.routes import dict_search
|
from app.api.search_dict.routes import dict_search
|
||||||
from app.api.translator import translator_router
|
from app.api.translator import translator_router
|
||||||
from app.api.user.routes import users_router
|
from app.api.user.routes import users_router
|
||||||
|
from app.api.util_api.routes import ulit_router
|
||||||
from app.api.word_comment.routes import word_comment_router
|
from app.api.word_comment.routes import word_comment_router
|
||||||
from app.core.redis import init_redis, close_redis
|
from app.core.redis import init_redis, close_redis
|
||||||
from app.utils.phone_encrypt import PhoneEncrypt
|
from app.utils.phone_encrypt import PhoneEncrypt
|
||||||
|
|
@ -67,5 +68,7 @@ app.include_router(pron_test_router, tags=["Pron Test API"], prefix="/test/pron"
|
||||||
|
|
||||||
app.include_router(article_router, tags=["Article API"])
|
app.include_router(article_router, tags=["Article API"])
|
||||||
|
|
||||||
|
app.include_router(ulit_router, tags=["Util Functions API"])
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
uvicorn.run("main:app", host="127.0.0.1", port=8000, reload=True)
|
uvicorn.run("main:app", host="127.0.0.1", port=8000, reload=True)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue