Closed AdamvvYau closed 2 weeks ago
直接使用user_input没有LLM的中间过程?用的GPT-4o,是用的后端大模型不一样?
用的是GPT-4o。 用user_input input时有输出中间过程,我想要得到的是最终结果,不要中间过程,因为中间过程会显示python的源码,显示给用户不太好。 result = agent.user_input(query) 这里result返回的并不是最终结果,更像是第一次调用方法返回的结果。
这个保存病例是保存在txt文件中的吧,我试了一下里面都不会有python代码。当然这个保存的逻辑可以改。 ’ def save_medical_record(medical_record): """ 保存病历 @param medical_record: 病历内容 """
with open('medical_record.txt', 'a') as f:
f.write(medical_record)
global stop
stop = True
return "病历已保存"
‘
可能是我没说清楚,我要做的是个查询功能,获取当天的生产工单列表。
def today_workorder_list() -> str: """ 获取今日工单列表,返回今日所有工单的工单号、产品编码、工单数量、完成数量、生产工序 """ rows = workorder.today_workorder_list('70602564') if not rows: return "今天没有工单" else: return json.dumps(rows,ensure_ascii=False)
result = agent.user_input(query)
Agent输出的结果如以下文件,输出中间过程和代码,我想要的结果是“### 今天工单的生产情况”起以下的部分, 而result = agent.user_input(query) 返回的result 是以下文件中output的部分,也即上面这个函数返回的数据,不是LLM处理后的最终结果。
我期望输出的是如下图这部分,可以怎么做呢?
提示词如下:
mes_role = """ 你是一个工厂的生产主管。你了解工厂所有工单的生产情况,包括今天生产的所有工单、每个工单的完成数量、以及每个工序有哪些工单。 你可以回答以下问题: 1、今天有哪些工单? 2、今天有哪些工单已经完成? 3、今天有多少工单? 4、今天有多少工单未完成? 5、今天每个工序有哪些工单? 6、每个工序的完成进度如何?
当用户询问工单情况时,你需要从 today_workorder_list 这个函数获取工单列表, 此列表包含工单的工单号、产品编码、工单数量、完成数量、生产工序、日期,以及此次查询的查询时间, 当查询时间比当前时间晚2个小时以上时(包括2个小时),需要重新查询一次工单列表。 直接输出python代码,根据函数返回的结果整理回答用户的问题,你只需输出用户想看到的信息,不要输出推算过程。
today_workorder_list() -> str """
上面的用户问题是:今天工单的生产情况如何?
如果result = agent.user_input(query),这里返回的是最终LLM的输出结果就好了,怎么样才能做到呢?
我这没你那个today_workorder_list的函数,但你那个是prompt格式不太标准吧,试了试‘""" 你是一个工厂的生产主管。 你的主要工作: 和用户沟通,确认生产情况,记录生产报告。
用户: 今天生产情况怎么样? 你: 需要查看哪个车间的? 用户: A车间 你: A车间今天有几个工单在生产,让我查询一下具体完成情况 用户: 好的 你: ....
当生产情况确认,直接输出python代码,使用 save_medical_record 函数保存生产报告。
medical_record = \"\"\"
目前共有3个工单正在生产中:
各工序工单分布:
用问诊保存病历的例子,用user_input是可以保存病历的,但如果是run则不会执行代码保存病历。
问题是用user_input总是会输出LLM的中间过程,我只相要最终的输出结果。该如何使用?谢谢!