api_article_annotation.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. # -*- coding: utf-8 -*-
  2. from fastapi import FastAPI, Form, HTTPException, Request,status,APIRouter,Query,Path, Depends, BackgroundTasks
  3. from tools.loglog import logger,log_err_e
  4. from core.respone_format import *
  5. from gpt.article_annotation import Annotation
  6. from pydantic import BaseModel, ValidationError, conint,Field,conint
  7. from typing import List, Optional,Literal
  8. import asyncio
  9. router_article_annotation = APIRouter()
  10. annotation_obj = Annotation()
  11. class Annotation(BaseModel):
  12. english_text:str
  13. split_blank:bool = True
  14. @router_article_annotation.post("/article/meaning/annotation")
  15. def post_annotation(json_data:Annotation,request:Request,):
  16. """词义标注的同步接口"""
  17. json_data = json_data.model_dump()
  18. english_text = json_data.get("english_text")
  19. split_blank = json_data.get("split_blank")
  20. real_ip = request.headers.get("X-Real-IP","0.0.0.0")
  21. resp = annotation_obj.submit_task(
  22. english_text=english_text,
  23. split_blank=split_blank,
  24. real_ip=real_ip,
  25. )
  26. return resp_200(data=resp)
  27. @router_article_annotation.get("/article/query_annotation")
  28. async def query_annotation(task_id:int=Query(...)):
  29. resp = await annotation_obj.query_result_by_taskid(task_id)
  30. return resp