analyze_video.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import uvicorn
  2. from fastapi import FastAPI
  3. from pydantic import BaseModel
  4. from loguru import logger
  5. from google_ai.generativeai_video import main
  6. app = FastAPI()
  7. class VideoRequest(BaseModel):
  8. api_key: str
  9. video_path: str
  10. prompt: str
  11. mark: str
  12. sample_data: str
  13. @app.post("/process_video/")
  14. async def process_video(request: VideoRequest):
  15. """处理视频请求"""
  16. api_key = request.api_key
  17. video_path = request.video_path
  18. prompt = request.prompt
  19. mark = request.mark
  20. sample_data = request.sample_data
  21. try:
  22. logger.info(f"来一个请求,使用 API key: {api_key}")
  23. result = await main(video_path, api_key, prompt, sample_data)
  24. return {
  25. "code": 0,
  26. "message": "视频处理成功",
  27. "result": result,
  28. "mark": str(mark)
  29. }
  30. except Exception as e:
  31. logger.error(f"处理失败: {str(e)}")
  32. return {
  33. "code": 1,
  34. "message": f"处理失败: {e}",
  35. "result": f"处理失败: {e}",
  36. "mark": f"处理失败: {e}"
  37. }
  38. if __name__ == "__main__":
  39. uvicorn.run(app, host="0.0.0.0", port=8080)