跳到主要内容

参与 LangChainGo 开发

感谢您对 LangChainGo 的关注!本指南将帮助您开始贡献。

贡献方式

1. 代码贡献

  • 修复 Bug:帮助我们解决 Bug 并提高稳定性
  • 新功能:实现新的大语言模型(LLM)提供者、工具或链
  • 性能改进:优化现有代码
  • 测试:增加测试覆盖率并添加缺失的测试用例

2. 文档贡献

  • 教程:编写常见应用场景的分步指南
  • 操作指南:为特定问题创建实用解决方案
  • API 文档:改善代码注释和示例
  • 概念性指南:解释架构决策和模式

3. 社区支持

  • 回答问题:在 GitHub 讨论中帮助他人
  • 报告问题:提交详细的 Bug 报告
  • 审查 PR:对拉取请求提供反馈
  • 分享示例:展示您的 LangChainGo 项目

开始开发

开发环境设置

  1. 在 GitHub 上 Fork 仓库

  2. 将 Fork 克隆到本地:

    git clone https://github.com/YOUR-USERNAME/langchaingo.git
    cd langchaingo
  3. 添加上游远程仓库:

    git remote add upstream https://github.com/tmc/langchaingo.git
  4. 创建功能分支:

    git checkout -b feature/your-feature-name

代码风格

  • 遵循标准的 Go 规范和惯用法
  • 提交前运行 go fmt
  • 确保所有测试通过 go test ./...
  • 对新功能添加测试
  • 使用带有包名前缀的提交信息(参见下方拉取请求指南)
  • 保持每次提交聚焦于单一主题

测试

当贡献与外部 API 相互作用的代码时:

  1. 使用内部 httprr 工具记录 HTTP 交互
  2. 永远不要提交真实的 API 密钥或密钥
  3. 确保测试可以在没有外部依赖的情况下运行
  4. 参见 架构指南 获取详细信息

贡献流程

  1. 检查现有问题:查看是否有与您的想法相关的现有问题或讨论
  2. 打开一个问题:对于重大更改,先打开一个问题进行讨论
  3. 实施变更:在功能分支中实现您的更改
  4. 遵循提交风格:使用带有包名前缀的 Go 风格提交信息
  5. 彻底测试:确保所有测试通过并添加新的测试用例
  6. 提交 PR:按照我们的指南打开一个包含清晰描述的拉取请求
  7. 回应反馈:及时回复审查评论

拉取请求指南

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 更加完善!