app.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. from fastapi import FastAPI, Request
  2. import uvicorn
  3. from datetime import datetime, time, date
  4. import gradio as gr
  5. from .agent import agent_framework, agent_main
  6. CUSTOM_PATH = "/agent_bot"
  7. app = FastAPI()
  8. @app.get("/index")
  9. def root():
  10. return {"message": "hello world!!!"}
  11. with gr.Blocks() as demo:
  12. chatbot = gr.Chatbot(show_label=False, height=600, avatar_images=["https://hong.greatdk.com/_next/image?url=%2Fself.jpg&w=1920&q=75", "https://hong.greatdk.com/_next/image?url=%2Fnpc.jpg&w=1920&q=75"])
  13. with gr.Row() as input_row:
  14. msg_textbox = gr.Textbox(show_label=False, scale=15)
  15. submit_btn = gr.Button(value="发送", scale=1)
  16. clear_btn = gr.ClearButton([msg_textbox, chatbot],value="清除会话")
  17. def respond(message, chat_history):
  18. print(f"message:{message}, strpped:{message.strip()}")
  19. print(f"history:{chat_history}")
  20. if len(message.strip()) <= 0 :
  21. print(f"message is empty, ignore the message")
  22. return "", chat_history
  23. init_agent = agent_main.AgentMain()
  24. af = agent_framework.AgentFramework(init_agent=init_agent)
  25. bot_message = af.run(message.strip(), chat_history)
  26. chat_history.append((message.strip(), bot_message))
  27. return "", chat_history
  28. msg_textbox.submit(respond, [msg_textbox, chatbot], [msg_textbox, chatbot]) # 在输入框按回车也进行发送
  29. submit_btn.click(respond, [msg_textbox, chatbot], [msg_textbox, chatbot]) # 绑定按钮点击函数
  30. fastapp = gr.mount_gradio_app(app, demo, path=CUSTOM_PATH)
  31. if __name__=='__main__':
  32. uvicorn.run(fastapp, host="0.0.0.0", port=8000)