【Agent】使用 Python 结合 OpenAI 的 API 实现一个支持 Function Call 的程序,修改本机的 txt 文件

使用 Python 结合 OpenAI 的 API 来实现一个支持 Function Call 的程序,修改本机的 txt 文件。需要注意,在运行代码前,要确保已经安装了 openai 库,并且拥有有效的 OpenAI API Key。

python 复制代码
import openai
import os

# 设置你的 OpenAI API Key
openai.api_key = "your_api_key"

# 定义修改 txt 文件的函数
def modify_txt_file(file_path, new_content):
    try:
        with open(file_path, 'w', encoding='utf-8') as file:
            file.write(new_content)
        return f"文件 {file_path} 已成功修改。"
    except Exception as e:
        return f"修改文件时出现错误: {str(e)}"

# 定义函数的元数据,供 OpenAI 模型使用
functions = [
    {
        "name": "modify_txt_file",
        "parameters": {
            "type": "object",
            "properties": {
                "file_path": {
                    "type": "string",
                    "description": "要修改的 txt 文件的路径"
                },
                "new_content": {
                    "type": "string",
                    "description": "要写入文件的新内容"
                }
            },
            "required": ["file_path", "new_content"]
        }
    }
]

# 与 OpenAI 模型交互
def chat_with_openai(prompt):
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo-0613",
        messages=[{"role": "user", "content": prompt}],
        functions=functions,
        function_call="auto"
    )

    message = response["choices"][0]["message"]
    if message.get("function_call"):
        function_name = message["function_call"]["name"]
        parameters = message["function_call"]["parameters"]
        if function_name == "modify_txt_file":
            result = modify_txt_file(parameters["file_path"], parameters["new_content"])
            return result
    return message["content"]


if __name__ == "__main__":
    # 用户输入的提示信息
    user_prompt = "请将 /paths/file.txt 文件的内容修改为 '这是新的文件内容。'"
    result = chat_with_openai(user_prompt)
    print(result)

代码说明:

  1. 定义修改文件的函数modify_txt_file 函数接收文件路径和新内容作为参数,尝试打开文件并将新内容写入,同时处理可能出现的异常。
  2. 定义函数元数据functions 列表中包含了 modify_txt_file 函数的元数据,描述了函数的名称、参数类型和参数描述等信息,供 OpenAI 模型识别和调用。
  3. 与 OpenAI 模型交互chat_with_openai 函数向 OpenAI 模型发送用户的提示信息,并传递函数元数据。如果模型决定调用函数,就执行相应的函数并返回结果;否则,直接返回模型的文本响应。
  4. 主程序 :设置用户的提示信息,调用 chat_with_openai 函数并打印结果。

请将 "your_api_key" 替换为你自己的 OpenAI API Key,并根据实际情况修改文件路径和用户提示信息。

相关推荐
威桑5 分钟前
记一次Windwos非常离谱的系统错误,IPF错误,程序构建卡顿,程序启动卡顿。。。
windows
天天进步201514 分钟前
Python游戏开发引擎设计与实现
开发语言·python·pygame
数据狐(DataFox)1 小时前
CTE公用表表达式的可读性与性能优化
经验分享·python·sql
蹦蹦跳跳真可爱5891 小时前
Python----MCP(MCP 简介、uv工具、创建MCP流程、MCP客户端接入Qwen、MCP客户端接入vLLM)
开发语言·人工智能·python·语言模型
No0d1es1 小时前
第13届蓝桥杯Python青少组中/高级组选拔赛(STEMA)2022年1月22日真题
python·青少年编程·蓝桥杯·选拔赛
MediaTea1 小时前
Python 库手册:getopt Unix 风格参数解析模块
服务器·开发语言·python·unix
王尼莫啊1 小时前
【立体标定】圆形标定板标定python实现
开发语言·python·opencv
cosX+sinY2 小时前
10 卷积神经网络
python·深度学习·cnn
非极限码农2 小时前
基于Deepseek的语言润色助手API实现与部署指南
python·微服务·自然语言处理
I love studying!!!2 小时前
python基础:用户输入和 while 循环
python