连接代码执行器

为什么要连接代码执行器

大语言模型(LLM)如 ChatGPT 在许多方面表现出色,但在进行精确计算和数据处理时可能存在局限性。然而,LLM 擅长编写代码。通过将 LLM 生成的代码交给专门的代码执行器运行,我们可以结合两者的优势:LLM 的代码生成能力和执行器的计算能力。

连接代码执行器的主要优势包括:

  1. 提高计算准确性
  2. 增强数据处理能力
  3. 实现更复杂的任务
  4. 减少 LLM 的计算负担

如何连接代码执行器

连接代码执行器的过程可以分为以下几个步骤:

  1. 意图识别: 分析用户输入,判断是否包含需要精确计算或数据处理的需求。

  2. 准备输入: 将用户的输入、连接代码执行器的函数调用(Function Call)以及相关的计算类提示词(Prompt)一起发送给 LLM。

  3. 代码生成: LLM 根据输入生成相应的代码。

  4. 代码执行: 将 LLM 生成的代码发送给代码执行器运行。

  5. 结果处理: 对代码执行器返回的结果进行处理,并以用户友好的方式呈现。

连接代码执行器示例

让我们通过一个具体的例子来说明这个过程:

用户输入: "檀香山 2023 年,有多少天气温高于 30 度?"

  1. 意图识别: 系统识别出这是一个需要处理气象数据并进行计算的查询。

  2. 数据获取: 通过第三方 API 获取檀香山 2023 年的每日气温数据,假设共有 365 条记录。

  3. 代码生成: 系统向 LLM 发送包含以下内容的提示:

    • 用户的原始查询
    • 获取到的气象数据结构说明
    • 要求 LLM 编写 Python 代码来处理数据并回答问题
  4. 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}天")
    
  5. 代码执行: 系统将 LLM 生成的代码和气象数据一起发送给代码执行器运行。

  6. 结果处理: 代码执行器返回结果,例如 12 天。系统将这个结果格式化为自然语言回答。

  7. 展示结果: 系统向用户展示最终答案:"根据数据分析,2023 年檀香山有 12 天的气温高于 30 度。"