当前位置:   article > 正文

Autogen中Agent-Human交互逻辑拆解 ,用于构建gradio应用

Autogen中Agent-Human交互逻辑拆解 ,用于构建gradio应用

1. 定义一个assistant,具体任务由system_message定义

2. 每次human输入后,重置assistant

assistant.reset()

3.将gradio提供的ChatInterface中的chat_history进行转换,得到oai类型的message,加入到assistant的message中

  1. oai_messages = chat_to_oai_message(chat_history)
  2. assistant._oai_system_message_origin = assistant._oai_system_message.copy()
  3. assistant._oai_system_message += oai_messages

4.将ChatInterface输入的message给定义的userproxy,用于生成回答

  1. userproxy.initiate_chat(assistant, message=user_message)
  2. messages = userproxy.chat_messages

5.保存最新的对话历史

chat_history += oai_message_to_chat(messages, assistant)

6.将assistant的对话信息重置为最初的system_message

assistant._oai_system_message = assistant._oai_system_message_origin.copy()

原因:ChatInterface提供了回溯功能,即其chat_history可以回到任意轮的对话中,故要保持assistant的message始终为初始的定义,以保证可随时回溯。

原demo链接:https://huggingface.co/spaces/thinkall/autogen-human-input-demo

demo中也重写了逻辑,由自定义的respond函数来对chat_history进行记录,而不是gradio,具体见函数:

  1. async def _submit_fn(
  2. self,
  3. message: str,
  4. history_with_input,
  5. request: Request,
  6. *args,
  7. ) :

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/586304
推荐阅读
相关标签
  

闽ICP备14008679号