# -*- coding: utf-8 -*- from fastapi import FastAPI, Form, HTTPException, Request, status, APIRouter, Query, Path from tools.loglog import logger, log_err_e from core.respone_format import * from deepseek.get_article3 import GetArticle from pydantic import BaseModel, ValidationError, conint, Field from typing import List, Optional, Literal router = APIRouter(tags=['deepseek接口']) get_article = GetArticle() class Word(BaseModel): spell: str = Field(..., description="单词的拼写") meaning: str = Field(..., description="单词的意思") class ArticleRequest(BaseModel): words: List[Word] = Field(..., description="单词列表") take_count: int = 2 student_stage: Literal[1, 2, 3] demo_name: Optional[str] = "无" @router.post("/article/reading-comprehension/deepseek") def post_article(json_data: ArticleRequest, request: Request): json_data = json_data.dict() real_ip = request.headers.get("X-Real-IP") words, take_count, student_stage, demo_name = json_data["words"], json_data["take_count"], json_data["student_stage"], json_data[ "demo_name"] try: r = get_article.submit_task(words_meaning_list=words, take_count=take_count, student_stage=student_stage, real_ip=real_ip, demo_name=demo_name) return r if not isinstance(r, str) else resp_500(message=r) except Exception as e: log_err_e(e, msg="文章3,ds接口错误/article/reading-comprehension/deepseek;") return resp_500(message=f"{type(e).__name__},{e}")