chatdev的run.py源码逐行翻译

本文档详细解释了一个Python脚本,用于配置和运行ChatChain聊天机器人,支持不同GPT模型,通过命令行参数传递配置,使用OpenAIAPI,并记录日志活动。
摘要由CSDN通过智能技术生成

上一篇文章反响不错,现将run.py源码逐行翻译贴出,希望大家喜欢。

您提供的代码是一个Python脚本,它包含了一个使用命令行参数来配置和运行一个名为ChatChain的聊天机器人链的程序。这个脚本使用了Apache License 2.0许可证。以下是脚本的中文注释和说明:

 

复制

# =========== 版权所有 2023 @ CAMEL-AI.org. 保留所有权利。===================== # 根据Apache License 2.0版(“许可证”)授权; # 除非遵守许可证,否则您不得使用此文件。 # 您可以在以下网址获取许可证副本: # # http://www.apache.org/licenses/LICENSE-2.0 # # 除非适用法律要求或书面同意,否则根据许可证分发的软件 # 将按“原样”基础提供,不提供任何形式的保证或条件, # 无论是明示的还是暗示的。具体权限和限制的条款,请参见许可证。 # =========== 版权所有 2023 @ CAMEL-AI.org. 保留所有权利。===================== import argparse # 命令行参数处理库 import logging # 日志处理库 import os # 操作系统接口库 import sys # 系统相关的参数和函数 from camel.typing import ModelType # 来自camel模块的类型定义 # 获取当前文件的目录,并将其添加到系统路径中 root = os.path.dirname(__file__) sys.path.append(root) # 尝试导入OpenAI的新API,如果失败则使用旧API try: from openai.types.chat.chat_completion_message_tool_call import ChatCompletionMessageToolCall from openai.types.chat.chat_completion_message import FunctionCall openai_new_api = True # 使用新版本的OpenAI API except ImportError: openai_new_api = False # 使用旧版本的OpenAI API print( "警告:您的OpenAI版本已过时。\n " "请按照requirement.txt中的指定进行更新。\n " "旧的API接口已被弃用,将不再提供支持。") # 定义获取配置文件的函数 def get_config(company): # 返回ChatChain的配置JSON文件路径 # 用户可以自定义配置JSON文件的部分内容,其他文件将保留默认设置 config_dir = os.path.join(root, "CompanyConfig", company) # 自定义配置目录 default_config_dir = os.path.join(root, "CompanyConfig", "Default") # 默认配置目录 config_files = [ "ChatChainConfig.json", "PhaseConfig.json", "RoleConfig.json" ] config_paths = [] for config_file in config_files: # 如果自定义配置文件存在,则使用它,否则使用默认配置 company_config_path = os.path.join(config_dir, config_file) default_config_path = os.path.join(default_config_dir, config_file) if os.path.exists(company_config_path): config_paths.append(company_config_path) else: config_paths.append(default_config_path) return tuple(config_paths) # 设置命令行参数解析器 parser = argparse.ArgumentParser(description='argparse') # 添加命令行参数 parser.add_argument('--config', type=str, default="Default", help="配置名称,用于在CompanyConfig/下加载配置") parser.add_argument('--org', type=str, default="DefaultOrganization", help="组织名称,您的软件将在WareHouse/name_org_timestamp中生成") parser.add_argument('--task', type=str, default="Develop a basic Gomoku game.", help="软件提示") parser.add_argument('--name', type=str, default="Gomoku", help="软件名称,您的软件将在WareHouse/name_org_timestamp中生成") parser.add_argument('--model', type=str, default="GPT_3_5_TURBO", help="GPT模型,从{'GPT_3_5_TURBO','GPT_4','GPT_4_32K', 'GPT_4_TURBO'}中选择") parser.add_argument('--path', type=str, default="", help="您的文件目录,ChatDev将在增量模式下基于您的软件构建") # 解析命令行参数 args = parser.parse_args() # 初始化ChatChain config_path, config_phase_path, config_role_path = get_config(args.config) args2type = {'GPT_3_5_TURBO': ModelType.GPT_3_5_TURBO, 'GPT_4': ModelType.GPT_4, 'GPT_4_32K': ModelType.GPT_4_32k, 'GPT_4_TURBO': ModelType.GPT_4_TURBO, 'GPT_4_TURBO_V': ModelType.GPT_4_TURBO_V } if openai_new_api: args2type['GPT_3_5_TURBO'] = ModelType.GPT_3_5_TURBO_NEW chat_chain = ChatChain(config_path=config_path, config_phase_path=config_phase_path, config_role_path=config_role_path, task_prompt=args.task, project_name=args.name, org_name=args.org, model_type=args2type[args.model], code_path=args.path) # 初始化日志 logging.basicConfig(filename=chat_chain.log_filepath, level=logging.INFO, format='[%(asctime)s %(levelname)s] %(message)s', datefmt='%Y-%d-%m %H:%M:%S', encoding="utf-8") # 预处理 chat_chain.pre_processing() # 人员招聘 chat_chain.make_recruitment() # 执行聊天链 chat_chain.execute_chain() # 后处理 chat_chain.post_processing()

这个脚本的主要功能是通过命令行参数来配置一个聊天机器人链,然后执行一系列的任务,包括预处理、人员招聘、执行聊天链和后处理。它使用了OpenAI的API(可能是新版本或旧版本),并且可以根据用户的选择使用不同的GPT模型。最后,它会记录日志以便跟踪整个过程。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值