123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- import json
- from cgitb import reset
- from concurrent.futures import ThreadPoolExecutor
- from typing import List
- from fastapi import APIRouter, BackgroundTasks
- from schemas import ResponseWrapper
- from schemas.schemas import Query, ContentData
- from tools_v1 import query_keyword_summary_results, query_keyword_content_results
- from utils.deepseek_utils import get_keywords
- from utils.json_parse_utils import process_texts_concurrently
- router = APIRouter()
- # 创建线程池执行器
- executor = ThreadPoolExecutor(max_workers=10)
- @router.post("/query", response_model=ResponseWrapper)
- async def query_keyword(query: Query):
- keywords = get_keywords(query.text)['keywords']
- print(keywords)
- summary_res = query_keyword_summary_results(keywords)
- content_res = query_keyword_content_results(keywords)
- res = {'summary_results': summary_res, 'content_results': content_res}
- return ResponseWrapper(
- status_code=200,
- detail="success",
- data=res
- )
- @router.post("/add/data", response_model=ResponseWrapper)
- async def query_keyword(content_list: List[ContentData]):
- param = []
- for content in content_list:
- param.append({'body_text': content.body_text})
- print(json.dumps(param, ensure_ascii=False))
- # 将处理任务提交给后台线程池
- executor.submit(process_texts_concurrently, param)
- return ResponseWrapper(
- status_code=200,
- detail="success",
- data="正在后台处理中"
- )
- # @router.post("/query/keyword/content", response_model=ResponseWrapper)
- # async def query_keyword(query: Query):
- # res = query_keyword_content_results(query.text)
- # return ResponseWrapper(
- # status_code=200,
- # detail="success",
- # data=res
- # )
- # @router.post("/query/embedding", response_model=ResponseWrapper)
- # async def query_keyword(query: Query):
- # res = query_embedding_results(query.text)
- # return ResponseWrapper(
- # status_code=200,
- # detail="success",
- # data=res
- # )
|