dat257 commited on
Commit
deb315d
·
verified ·
1 Parent(s): 091451d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -12
app.py CHANGED
@@ -36,7 +36,7 @@ def gradio_answer(question, context):
36
  result = qa_pipeline(question=question, context=context)
37
  return result["answer"]
38
 
39
- # Tạo FastAPI app để thêm endpoint API
40
  app = FastAPI()
41
 
42
  @app.post("/api/answer")
@@ -44,11 +44,11 @@ async def api_answer(request: Request):
44
  try:
45
  data = await request.json()
46
  question = data.get("question")
47
- context = data.get("context")
48
  logging.info(f"Received request - Question: {question}, Context: {context[:200]}...")
49
- if not question or not context:
50
- logging.error("Missing question or context")
51
- return JSONResponse({"error": "Missing question or context"}, status_code=400)
52
  result = qa_pipeline(question=question, context=context)
53
  logging.info(f"Response - Answer: {result['answer']}")
54
  return JSONResponse({"answer": result["answer"]})
@@ -56,7 +56,7 @@ async def api_answer(request: Request):
56
  logging.error(f"API error: {e}")
57
  return JSONResponse({"error": str(e)}, status_code=500)
58
 
59
- # Tạo Gradio Blocks
60
  with gr.Blocks() as demo:
61
  gr.Markdown("# AgriBot: Hỏi đáp nông nghiệp")
62
  gr.Markdown("Nhập câu hỏi và ngữ cảnh để nhận câu trả lời về nông nghiệp.")
@@ -68,11 +68,12 @@ with gr.Blocks() as demo:
68
  submit_btn = gr.Button("Gửi")
69
  submit_btn.click(fn=gradio_answer, inputs=[question_input, context_input], outputs=output)
70
 
 
 
 
 
71
  # Chạy ứng dụng
72
  if __name__ == "__main__":
73
- logging.info("Starting Gradio on port 7860...")
74
- demo.launch(
75
- server_name="0.0.0.0",
76
- server_port=7860,
77
- inline=False,
78
- )
 
36
  result = qa_pipeline(question=question, context=context)
37
  return result["answer"]
38
 
39
+ # Tạo FastAPI app
40
  app = FastAPI()
41
 
42
  @app.post("/api/answer")
 
44
  try:
45
  data = await request.json()
46
  question = data.get("question")
47
+ context = data.get("context", "Cây lúa là một loại cây trồng phổ biến ở Việt Nam, cần điều kiện đất và nước phù hợp.")
48
  logging.info(f"Received request - Question: {question}, Context: {context[:200]}...")
49
+ if not question:
50
+ logging.error("Missing question")
51
+ return JSONResponse({"error": "Missing question"}, status_code=400)
52
  result = qa_pipeline(question=question, context=context)
53
  logging.info(f"Response - Answer: {result['answer']}")
54
  return JSONResponse({"answer": result["answer"]})
 
56
  logging.error(f"API error: {e}")
57
  return JSONResponse({"error": str(e)}, status_code=500)
58
 
59
+ # Tạo Gradio Blocks và mount vào FastAPI
60
  with gr.Blocks() as demo:
61
  gr.Markdown("# AgriBot: Hỏi đáp nông nghiệp")
62
  gr.Markdown("Nhập câu hỏi và ngữ cảnh để nhận câu trả lời về nông nghiệp.")
 
68
  submit_btn = gr.Button("Gửi")
69
  submit_btn.click(fn=gradio_answer, inputs=[question_input, context_input], outputs=output)
70
 
71
+ # Mount Gradio vào FastAPI
72
+ app = gr.integration.FastAPI(app)
73
+ app.mount("/", demo)
74
+
75
  # Chạy ứng dụng
76
  if __name__ == "__main__":
77
+ import uvicorn
78
+ logging.info("Starting app on port 80...")
79
+ uvicorn.run(app, host="0.0.0.0", port=80)