12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- # -*- coding: utf-8 -*-
- from fastapi import FastAPI, Form, HTTPException, Request,status,APIRouter,Query,Path
- from tools.loglog import logger
- from gpt.get_article import GetArticle
- from gpt.query_oss_file import query_file_content
- from core.respone_format import *
- from pydantic import BaseModel, ValidationError, conint
- from typing import List, Optional
- router = APIRouter()
- get_article = GetArticle()
- class ArticleRequest(BaseModel):
- meaning_ids: List[conint(ge=1)]
- callback_url: Optional[str] = None
- demo_name: Optional[str] = "无"
- student_stage: Optional[int] = 1
- vocabulary: Optional[int] = 500
- class_id :Optional[int]
- @router.post("/article")
- def post_article(json_data:ArticleRequest,request:Request):
- real_ip = request.headers.get("X-Real-IP","localhost")
- words_meaning_ids: list = json_data.meaning_ids
- callback_url = json_data.callback_url
- demo_name = json_data.demo_name
- student_stage = json_data.student_stage
- vocabulary = json_data.vocabulary
- class_id = json_data.class_id
- try:
- if not words_meaning_ids:
- return resp_404(message="没有词义id")
- r = get_article.submit_task(words_meaning_ids=words_meaning_ids,callback_url=callback_url,
- real_ip=real_ip,demo_name=demo_name,
- student_stage=student_stage,vocabulary=vocabulary,class_id=class_id)
- return r if not isinstance(r,str) else resp_500(message=r)
- except Exception as e:
- logger.error(f"{type(e).__name__},{e}")
- return resp_500(message=f"{type(e).__name__},{e}")
- @router.post("/query_oss_file")
- def query_oss_file(json_data:dict,request:Request):
- oss_key = json_data.get("key")
- if not oss_key:
- return resp_500(message="请提供key值")
- j = query_file_content(key=oss_key)
- if j == 0:
- return resp_500(message="错误:没有这个文件")
- return JSONResponse(j)
|