Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[建议]采用动态导入以减少不必要的依赖 #177

Open
nowanti opened this issue Oct 25, 2024 · 3 comments
Open

[建议]采用动态导入以减少不必要的依赖 #177

nowanti opened this issue Oct 25, 2024 · 3 comments

Comments

@nowanti
Copy link

nowanti commented Oct 25, 2024

您好,

首先感谢您开发了 agently 这个优秀的框架。最近在使用过程中(轻量的项目中),我注意到一个可以改进的地方,想和您探讨一下。

目前 agently 默认安装了不少第三方库,比如 erniebot、zhipuai、qianfan、duckduckgo-search 等。但是在实际使用中,我发现自己其实用不到这么多:

  1. 目前 Agently已支持 OpenAI 格式调用 LLM API,所以像 erniebot、zhipuai 这些,我就没怎么用上。
  2. duckduckgo-search、bce-python-sdk 这些库,感觉只有特定场景才会用到。

考虑到这点,我有个小建议:是否可以调整一下依赖的管理方式?比如:

  1. 参考 langchain 的动态引入方式,在代码中采用动态导入,只在实际使用相关功能时才导入所需的库。
  2. 或使用类似 agently[search] 的方式来管理可选依赖。这样用户可以根据需求选择安装特定功能模块。
  3. 在文档中简要说明哪些功能需要额外安装哪些依赖。

这样做可能会带来一些好处:

  • 减小基础安装包的体积,加快下载和安装速度
  • 降低依赖冲突的可能性
  • 提高框架的灵活性,方便用户根据实际需求定制

不知道您怎么看待这个建议?如果有任何疑问或需要进一步讨论,我很乐意提供更多细节。

再次感谢您的辛勤工作,期待 agently 能越来越好!

@Maplemx
Copy link
Owner

Maplemx commented Oct 25, 2024

感谢您的建议,的确精简包体积和依赖这个问题也是我们计划表中的一个重要事项,但是随着一年多的发展,有些依赖可能隐藏在较早期的代码中,不巧的是,早期代码大部分又都是基础层的代码,所以这个动作我们会相对谨慎。

我们也在考虑做一次从基础层开始的重构,但和去年2.x到3.x的升级不同,我们3.x已经积累了较多的用户,而且有部分用户已经用于线上生产环境,我们不希望重构对开发使用习惯造成太大的冲击,因此这个节奏会更慢一些。

再次感谢您的建议,我们会认真讨论和规划这个问题。如果您有更好的细化执行建议,也欢迎随时提出。

@nowanti
Copy link
Author

nowanti commented Oct 25, 2024 via email

@Maplemx
Copy link
Owner

Maplemx commented Oct 25, 2024

你们之前说的重构是4.0?预计推出时间有吗?感觉如果当前版本不可为,感觉可以在4.0里面变动。

是否进行大版本号变更我们也还在讨论,我们还是希望追求相对一致的开发体验,大版本号的变更往往意味着对现有开发习惯的破坏性变更,这不是我们想给开发者带来的。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants