会话管理的使用

问题

  • 问题表现
    用agent的时候,如何做到把上一句的结果传到下一句中使用,比如打开某个页面,查询购物记录,然后打开另一个页面,输入查询的购物名称,在agent中如何传递过去
  • 报错信息

产生的原因

新的尝试

解决方法

可以用会话管理来实现,HTTP协议的无状态性意味着服务器无法自动记住用户的状态和之前的请求信息。为了保持用户状态,如登录状态、购物车内容等,需要一种机制来跨多个请求跟踪用户,这就是会话管理的核心目的。

# 创建会话存储  
memory = LocalMemory()  
  
# 定义查询购物记录的Task  
query_shopping_record_prompt = PromptTemplate(  
    input_variables=["user_query"],  
    template="查询用户的购物记录,并返回第一条购物记录的名称。",  
)  
query_shopping_record_chain = Chain.from_prompt(  
    llm=llm,  
    prompt=query_shopping_record_prompt,  
    memory=memory,  
)  
  
# 定义打开并输入购物名称的Task  
open_page_with_shopping_name_prompt = PromptTemplate(  
    input_variables=["shopping_name"],  
    template="打开另一个页面,并输入购物名称:{shopping_name}。",  
)  
  
def open_page_with_shopping_name_chain(shopping_name):  
    return Chain.from_prompt(  
        llm=llm,  
   prompt=open_page_with_shopping_name_prompt.format(shopping_name=shopping_name),  
        memory=memory, 
    ).run()  
# 执行查询购物记录的任务  
shopping_name = query_shopping_record_chain.run(input_data={"user_query": "查询我的购物记录"})  
# 使用查询到的购物名称执行下一个任务  
open_page_with_shopping_name_chain(shopping_name)