参与 LangChainGo 开发
感谢您对 LangChainGo 的关注!本指南将帮助您开始贡献。
贡献方式
1. 代码贡献
- 修复 Bug:帮助我们解决 Bug 并提高稳定性
- 新功能:实现新的大语言模型(LLM)提供者、工具或链
- 性能改进:优化现有代码
- 测试:增加测试覆盖率并添加缺失的测试用例
2. 文档贡献
- 教程:编写常见应用场景的分步指南
- 操作指南:为特定问题创建实用解决方案
- API 文档:改善代码注释和示例
- 概念性指南:解释架构决策和模式
3. 社区支持
- 回答问题:在 GitHub 讨论中帮助他人
- 报告问题:提交详细的 Bug 报告
- 审查 PR:对拉取请求提供反馈
- 分享示例:展示您的 LangChainGo 项目
开始开发
开发环境设置
-
在 GitHub 上 Fork 仓库
-
将 Fork 克隆到本地:
git clone https://github.com/YOUR-USERNAME/langchaingo.git
cd langchaingo -
添加上游远程仓库:
git remote add upstream https://github.com/tmc/langchaingo.git
-
创建功能分支:
git checkout -b feature/your-feature-name
代码风格
- 遵循标准的 Go 规范和惯用法
- 提交前运行
go fmt
- 确保所有测试通过
go test ./...
- 对新功能添加测试
- 使用带有包名前缀的提交信息(参见下方拉取请求指南)
- 保持每次提交聚焦于单一主题
测试
当贡献与外部 API 相互作用的代码时:
- 使用内部
httprr
工具记录 HTTP 交互 - 永远不要提交真实的 API 密钥或密钥
- 确保测试可以在没有外部依赖的情况下运行
- 参见 架构指南 获取详细信息
贡献流程
- 检查现有问题:查看是否有与您的想法相关的现有问题或讨论
- 打开一个问题:对于重大更改,先打开一个问题进行讨论
- 实施变更:在功能分支中实现您的更改
- 遵循提交风格:使用带有包名前缀的 Go 风格提交信息
- 彻底测试:确保所有测试通过并添加新的测试用例
- 提交 PR:按照我们的指南打开一个包含清晰描述的拉取请求
- 回应反馈:及时回复审查评论
拉取请求指南
PR 标题格式
使用带有包名前缀的 Go 风格提交信息,遵循 Go 贡献指南:
memory: 添加自定义存储后端接口
llms/openai: 修复流式响应处理
chains: 实现带有记忆的对话链
vectorstores/chroma: 支持元数据过滤
docs: 更新新 API 的入门指南
agents: 增加 GPT-4 工具调用支持
examples: 添加 RAG 实施教程
格式: 包名: 描述(小写,不带句号)
示例良好的提交信息:
llms/anthropic: 实现函数调用支持
memory: 修复对话记忆中的缓冲区溢出问题
tools: 添加具有错误处理的计算器工具
all: 更新依赖项并整理 go.mod 文件
PR 描述
包括:
- 变更摘要
- 相关的问题编号
- 执行的测试
- 破坏性变更(如有)
- 类似功能在 Python/TypeScript LangChain 中的参考(如适用)
文档贡献
参见我们的 文档贡献指南 了解详情:
- 编写教程
- 创建操作指南
- 文档风格指南
- 在本地构建和测试文档
行为准则
请注意,本项目遵循行为准则。参与时,请遵守该准则。如遇不当行为,请向项目维护者报告。
贡献认可
贡献者将在以下地方获得认可:
- 项目的贡献者列表
- 对重大贡献的发布说明
- 文档中的编写内容信用
问题?
- 打开一个 GitHub 讨论
- 查看现有问题和 PR
- 审查文档
感谢您帮助使 LangChainGo 更加完善!