1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- # -*- coding: utf-8 -*-
- from fastapi import FastAPI, Form, HTTPException, Request,status,APIRouter,Query,Path, Depends, BackgroundTasks
- from tools.loglog import logger,log_err_e
- from core.respone_format import *
- from gpt.get_article2 import GetArticle
- from pydantic import BaseModel, ValidationError, conint,Field,conint
- from typing import List, Optional,Literal
- import asyncio
- router = APIRouter()
- get_article = GetArticle()
- class Word(BaseModel):
- meaning_id:int = Field(..., description="单词的词义id")
- word_id:int = Field(..., description="单词id")
- spell: str = Field(..., description="单词的拼写")
- meaning: str = Field(..., description="单词的意思")
- class ArticleRequest(BaseModel):
- core_words: List[Word] = Field(..., description="单词列表")
- take_count: int = 2
- demo_name: Optional[str] = "无"
- reading_level: conint(ge=1, le=30) = Field(default=10, description="阅读水平,默认值为10;[8,16,24]小学初中高中")
- article_length:int = Field(default=None,description="需要生成的文章长度,可以不传,不传自己根据reading_level判断")
- exercise_id:int = Field(default=0,description="学案ID,用于日志快速定位")
- @router.post("/article/reading-comprehension")
- def post_article(
- json_data:ArticleRequest,
- request:Request,
- background_tasks: BackgroundTasks,
- ):
- json_data = json_data.model_dump()
- real_ip = request.headers.get("X-Real-IP","0.0.0.0")
- core_words = json_data["core_words"]
- take_count = json_data["take_count"]
- demo_name = json_data["demo_name"]
- reading_level = json_data["reading_level"]
- article_length = json_data["article_length"]
- exercise_id = json_data["exercise_id"]
- try:
- r = get_article.submit_task(
- real_ip=real_ip,
- core_words=core_words,
- take_count=take_count,
- demo_name=demo_name,
- reading_level=reading_level,
- article_length=article_length,
- exercise_id=exercise_id,
- background_tasks=background_tasks
- )
- return r if not isinstance(r,str) else resp_500(message=r)
- except Exception as e:
- log_err_e(e, msg="文章2接口错误/article/reading-comprehension;")
- return resp_500(message=f"{type(e).__name__},{e}")
|