我想设计一个大模型的连续对话,但是文本窗口只能显示这一轮的对话,对话历史没想到办法调出来,因为流式传输的方式是不断调用子程序,所以我的想法是在一次post请求完成后向主程序传递信息,能够保存一个历史记录用作下一次加载的连续对话,不知道能不能实现
如果主程序没有结束,子程序中使用表达式 $= _context.GetRootContext() 可以得到主程序的动作上下文。 再使用 SetVarValue("变量名", 值) 可以写入变量。
非常感谢回复,我刚刚陷入了巨大的误区。现在换了一种思路,我通过文本窗口的"自动保存状态"和"读取状态"很简单就实现了多轮对话的功能,现在调用接口和SSE的子程序可以实现类似网页版的流式输出形式,也支持上下文显示,非常方便小巧。
$= _context.GetRootContext() 这个表达式的输出,显示的是"Quicker.Domain.Actions.ActionExecuteContext"。该如何从中读取具体某个变量的值呢?
找到读取的方法了。在使用SetVarValue("变量名", 值) 的时候怎么引用子程序内的变量呢?
请问,在http流式输出的情况下,在SSE内部使用S= _context.GetRootContext(),此时的主程序是指哪个?(当http组件位于子程序A内部,而A又被嵌套在B子程序内部的时候)
主程序只有一个。 不过主程序上下文不总是存在的,因为主程序可能提前结束。