跳至主要内容

使用 GitHub 模型在企业中开发 AI 驱动的应用程序

简化企业中的 AI 开发。

谁可以使用此功能?

组织所有者和企业所有者

注意

GitHub 模型面向组织和代码库的功能正处于公开预览阶段,可能会有更改。

GitHub 模型让开发者能够大规模构建 AI 驱动的应用程序,同时企业保持控制、合规性和成本效益。

为什么使用 GitHub 模型?

  • 集中式模型管理: 控制组织内开发者可以使用的 AI 模型和供应商。
  • 快速 AI 开发: 快速原型、评估并优化提示词和模型。
  • API 访问: 使用 GitHub 模型 REST API 实现自动化并与企业工作流集成。
  • 自定义模型集成: 携带您自己的大型语言模型(LLM)API 密钥,以连接外部或自定义模型,为组织在 GitHub 模型中提供更大的灵活性和控制权,同时保持与现有的付款方式、积分和供应商一致。
  • 治理和合规控制: 强制执行组织标准并监控模型使用情况。
  • 成本优化: 避免因高价模型产生的意外费用。
  • 协作: 使用标准 GitHub 开发实践共享提示词和结果。
  • 安全为中心的架构: 确保您的数据始终保留在 GitHub 和 Azure 中,不会与模型供应商共享。
  • 可视化界面: 允许非技术团队成员与开发者一起贡献。
  • 版本控制: 所有提示词和模型的更改都通过标准的 GitHub 提交和拉取请求流程,便于你了解何时以及为何更改提示词。

了解 GitHub 模型

大规模使用 GitHub 模型的最佳实践

以下最佳实践可帮助您在整个组织中有效使用 GitHub 模型。

比较和评估 AI 模型的治理与合规性

审查并比较可用的 AI 模型是否符合贵公司的治理、数据安全和合规要求。您可以在任何启用了模型的 GitHub 仓库中,或在 GitHub Marketplace 的 GitHub 模型目录(https://github.com/marketplace?type=models)中进行此操作。您可能需要考虑以下因素:

  • 治理与安全: 检查每个模型是否符合 GDPR、SOC 2、ISO 27001 等标准和法规,并确保数据不会在未取得明确同意的情况下持久化到组织外部。
  • 模型性能: 在内部数据集上进行基准评估,以评估推理能力、上下文保持以及幻觉率。
  • API 控制与可视性: 需要在团队或组织层面对使用配额、提示检查和速率限制进行细粒度控制。
  • 成本优化: 考虑代币定价、推理速度以及模型变体的可用性,以实现分层使用。例如,您可以使用成本更低的模型生成测试用例,而在架构讨论时使用更高级的模型。

一旦确定要使用的模型,您可以在组织内仅限这些模型的访问,见 管理您团队的模型使用

在团队之间优化并共享提示词

开发者可以使用 GitHub 模型中的提示编辑器创建和完善提示词。团队可以在一个稳定的、非生产环境中尝试不同的提示词变体和模型,该环境与 GitHub 开发工作流集成。可视化界面使非技术利益相关者也能与开发者一起贡献。参见 使用提示编辑器

轻量级评估工具允许您的团队在常见指标(如延迟、相关性和依据性)上比较结果,或创建自定义评估器。针对您特定的生成式 AI 用例(如编写代码、测试、文档或代码审查建议)比较提示词和模型的性能。

当团队创建有效的提示词后,可以将其保存为 YAML 文件,并通过 GitHub 拉取请求进行审查和共享。已提交的提示词可供其他团队和工作流使用,并可保持与公司标准的一致性。这种集中式、协作式的提示词管理方式加速了开发,并帮助您在整个组织中推行最佳实践。

评估并优化模型使用成本

随着 AI 驱动的应用程序的采用率提升以及 AI 模型的改进,使用 GitHub 模型评估不同模型及其更新的成本和性能。为组织需求选择最具成本效益的方案,并在使用量跨多个团队扩展时管理费用。

使用 GitHub 模型 REST API 或扩展进行编程化管理

为了更高效地管理所有团队的资源,您可以利用 GitHub 模型 REST API 来

  • 管理和更新组织设置: 通过编程方式一次性更新多个团队的模型访问权限和治理设置,以确保一致性和合规性。
  • 列出并检索提示词: 列出、检索并审计不同团队使用的提示词,以监控使用情况、共享成功的提示词,并维护最佳实践的中心仓库。
  • 执行模型推理请求: 对特定模型进行推理请求,并可设置频率惩罚、最大代币数、响应格式、出现惩罚等参数。

您也可以使用这些扩展来运行推理请求并管理提示词

  • GitHub 模型的 GitHub CLI 扩展
  • GitHub 模型的 GitHub Copilot Chat 扩展
  • GitHub 模型的 VS Code 扩展

监控、迭代和集成

借助内置的治理功能,您可以监控模型使用情况并确保持续符合公司政策。审计日志提供对谁访问或修改模型和提示词的可见性。GitHub 模型的仓库集成让所有利益相关者能够协作并持续迭代 AI 驱动的应用程序。

示例:使用 GitHub 模型和 GitHub Actions 对 issue 进行摘要

大型软件开发项目的 issue 通常包含大量技术细节。您可以使用 GitHub 模型和 GitHub Actions 推出 AI 驱动的 issue 摘要。

前置条件: 在组织中启用 GitHub 模型,并设置您希望在各个仓库中提供的模型和发布者。

  1. 在仓库中创建提示词

    在仓库的 “Models” 选项卡中,使用提示编辑器创建提示词。

    示例系统提示词

    您是 GitHub issue 的摘要者。突出关键技术点或重要问题。

    示例用户提示词

    总结此 issue - {{input}}

  2. 运行并迭代您的提示词

    运行您的提示词。在 “Variables” 面板中提供一些示例 issue 内容作为 {{input}} 的值。

    尝试不同的模型(例如 OpenAI GPT-4o)并比较结果。调整 max tokens、temperature 等参数。迭代直至满意为止。

  3. 可选地,进行更广泛的测试

    “Compare” 视图允许您同时对多个模型运行相同的提示词,并在网格视图中查看结果对比。您还可以定义并使用评估器,以确保结果包含特定关键字或符合其他标准。

  4. 提交您的提示词

    为您的提示词命名并提交更改,以通过拉取请求流程。例如,如果将提示词命名为 summarize,则在仓库根目录下会生成一个 summarize.prompt.yaml 文件,内容类似如下

    messages:
      - role: system
        content: >-
          You are a summarizer of GitHub issues. Emphasize key technical points or
          important questions.
      - role: user
        content: 'Summarize this issue, please - {{input}}'
    model: openai/gpt-4o
    modelParameters:
      max_tokens: 4096
    

    当您的拉取请求经审查并合并后,提示词即对仓库中的所有人可用。

  5. 在工作流中调用您的提示词

    有关创建工作流的信息,请参见 编写工作流

    您需要设置 models: read 权限,才能在工作流中调用提示词。

    以下是一个示例工作流,它会在新创建的 issue 上添加 AI 生成的摘要作为评论

    YAML
    name: Summarize New Issue
    
    on:
      issues:
        types: [opened]
    
    permissions:
      issues: write
      contents: read
      models: read
    
    jobs:
      summarize_issue:
        runs-on: ubuntu-latest
        steps:
          - name: Checkout repository
            uses: actions/checkout@v5
    
          - name: Install gh-models extension
            run: gh extension install https://github.com/github/gh-models
            env:
              GH_TOKEN: ${{ github.token }}
    
          - name: Create issue body file
            run: |
              cat > issue_body.txt << 'EOT'
              ${{ github.event.issue.body }}
              EOT
    
          - name: Summarize new issue
            run: |
              cat issue_body.txt | gh models run --file summarize.prompt.yml > summary.txt
            env:
              GH_TOKEN: ${{ github.token }}
    
          - name: Update issue with summary
            run: |
              SUMMARY=$(cat summary.txt)
              gh issue comment ${{ github.event.issue.number }} --body "### Issue Summary
              ${SUMMARY}"
            env:
              GH_TOKEN: ${{ github.token }}
    
  6. 监控并迭代

    您可以使用 GitHub 模型的提示编辑器监控 Action 的性能并对提示词和模型选择进行迭代。也可以使用 CLI 扩展 在本地进行测试,或使用 GitHub 模型 REST API 编程化更新提示词和模型设置。

    您还可以考虑将模型响应保存为仓库中的文件,以便随时审查并迭代模型的性能。这使您能够持续提升摘要质量,确保满足团队需求。

© . This site is unofficial and not affiliated with GitHub, Inc.