连接代码执行器
为什么要连接代码执行器
大语言模型(LLM)如 ChatGPT 在许多方面表现出色,但在进行精确计算和数据处理时可能存在局限性。然而,LLM 擅长编写代码。通过将 LLM 生成的代码交给专门的代码执行器运行,我们可以结合两者的优势:LLM 的代码生成能力和执行器的计算能力。
连接代码执行器的主要优势包括:
- 提高计算准确性
- 增强数据处理能力
- 实现更复杂的任务
- 减少 LLM 的计算负担
如何连接代码执行器
连接代码执行器的过程可以分为以下几个步骤:
意图识别: 分析用户输入,判断是否包含需要精确计算或数据处理的需求。
准备输入: 将用户的输入、连接代码执行器的函数调用(Function Call)以及相关的计算类提示词(Prompt)一起发送给 LLM。
代码生成: LLM 根据输入生成相应的代码。
代码执行: 将 LLM 生成的代码发送给代码执行器运行。
结果处理: 对代码执行器返回的结果进行处理,并以用户友好的方式呈现。
连接代码执行器示例
让我们通过一个具体的例子来说明这个过程:
用户输入: "檀香山 2023 年,有多少天气温高于 30 度?"
意图识别: 系统识别出这是一个需要处理气象数据并进行计算的查询。
数据获取: 通过第三方 API 获取檀香山 2023 年的每日气温数据,假设共有 365 条记录。
代码生成: 系统向 LLM 发送包含以下内容的提示:
- 用户的原始查询
- 获取到的气象数据结构说明
- 要求 LLM 编写 Python 代码来处理数据并回答问题
LLM 生成代码: 假设 LLM 生成了如下 Python 代码:
def count_hot_days(weather_data, threshold): return sum(1 for day in weather_data if day['max_temperature'] > threshold) hot_days = count_hot_days(weather_data, 30) print(f"2023年檀香山气温超过30度的天数为: {hot_days}天")
代码执行: 系统将 LLM 生成的代码和气象数据一起发送给代码执行器运行。
结果处理: 代码执行器返回结果,例如 12 天。系统将这个结果格式化为自然语言回答。
展示结果: 系统向用户展示最终答案:"根据数据分析,2023 年檀香山有 12 天的气温高于 30 度。"