OpenBMB / ChatDev

Create Customized Software using Natural Language Idea (through LLM-powered Multi-Agent Collaboration)
https://arxiv.org/abs/2307.07924
Apache License 2.0
24.38k stars 3.06k forks source link

关于一些冗余代码的合并咨询 #357

Closed Liyulingyue closed 3 months ago

Liyulingyue commented 3 months ago

问题描述

我在尝试对ChatDev进行二次开发,以使用Openai之外的模型进行生成。

在开发过程中我发现有一些代码可能更适合被集中在一个py文件中,通过import的方式导入他们,而非在每一个py文件中进行单独的声明/定义。

(我关注到这些内容是因为,如果我希望添加一个新的LLM,我就必须把每个地方的定义/声明都改了,实在是太过繁琐和细碎了hhhh,所以我更希望在代码中做一下模块化的集成)

例如:

            num_max_token_map = {
                "gpt-3.5-turbo": 4096,
                "gpt-3.5-turbo-16k": 16384,
                "gpt-3.5-turbo-0613": 4096,
                "gpt-3.5-turbo-16k-0613": 16384,
                "gpt-4": 8192,
                "gpt-4-0613": 8192,
                "gpt-4-32k": 32768,
                "gpt-4-1106-preview": 4096,
                "gpt-4-1106-vision-preview": 4096,
            }
try:
    from openai.types.chat import ChatCompletion

    openai_new_api = True # old openai api version
except ImportError:
    openai_new_api = False  # old openai api version

我想知道

  1. 这些代码是否适合被集中在一个文件中,还是说开发者出于某些目的将他们分散地进行声明?
  2. 这些代码可能可以放在camel/utils.py中,放在这个地方是否合适?如果放在这个地方是合适的,我很乐意提交一个PR来进行一些更改。
wyifei26 commented 3 months ago

感谢您的建议!由于在开发过程中的一些历史因素可能确实导致我们的项目中存在许多值得优化的部分。如果您有时间的话可以提交一个PR来更详细地阐明您的修改建议,非常感谢您对项目的关注和支持。

Liyulingyue commented 3 months ago

太棒了!感谢您的回复!

在等待的过程中我甚至修改了一些代码用于支持ErnieBot,我这两周应该可以抽时间提交一个PR用于将一些模块进行集成~并尝试将我对自定义模型的代码展示出来,这可能是另一种解决 https://github.com/OpenBMB/ChatDev/issues/27 的思路。