search.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import json
  2. from cgitb import reset
  3. from concurrent.futures import ThreadPoolExecutor
  4. from typing import List
  5. from fastapi import APIRouter, BackgroundTasks
  6. from schemas import ResponseWrapper
  7. from schemas.schemas import Query, ContentData
  8. from tools_v1 import query_keyword_summary_results, query_keyword_content_results
  9. from utils.data_utils import add_data
  10. from utils.deepseek_utils import get_keywords
  11. router = APIRouter()
  12. # 创建线程池执行器
  13. executor = ThreadPoolExecutor(max_workers=10)
  14. @router.post("/query", response_model=ResponseWrapper)
  15. async def query_keyword(query: Query):
  16. keywords = get_keywords(query.text)['keywords']
  17. print(keywords)
  18. summary_res = query_keyword_summary_results(keywords)
  19. content_res = query_keyword_content_results(keywords)
  20. res = {'summary_results': summary_res, 'content_results': content_res}
  21. return ResponseWrapper(
  22. status_code=200,
  23. detail="success",
  24. data=res
  25. )
  26. @router.post("/add/data", response_model=ResponseWrapper)
  27. async def query_keyword(content_list: List[ContentData]):
  28. res_list = []
  29. for content in content_list:
  30. if content.body_text:
  31. print(content.body_text)
  32. res = add_data(content.body_text)
  33. res_list.append(res)
  34. return ResponseWrapper(
  35. status_code=200,
  36. detail="success",
  37. data=res_list
  38. )
  39. # @router.post("/query/keyword/content", response_model=ResponseWrapper)
  40. # async def query_keyword(query: Query):
  41. # res = query_keyword_content_results(query.text)
  42. # return ResponseWrapper(
  43. # status_code=200,
  44. # detail="success",
  45. # data=res
  46. # )
  47. # @router.post("/query/embedding", response_model=ResponseWrapper)
  48. # async def query_keyword(query: Query):
  49. # res = query_embedding_results(query.text)
  50. # return ResponseWrapper(
  51. # status_code=200,
  52. # detail="success",
  53. # data=res
  54. # )