首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >将 ChatGPT 接入 GitLab Issue

将 ChatGPT 接入 GitLab Issue

作者头像
郭旭东
发布2023-10-04 15:22:53
发布2023-10-04 15:22:53
55100
代码可运行
举报
文章被收录于专栏:云原生工具箱云原生工具箱
运行总次数:0
代码可运行

前言

最近 ChatGPT[1] 着实是火了一把,一时间各种问题与回答充满整个朋友圈,大家玩的不亦乐乎。但由于网络的限制,很多人并不能注册和访问 OpenAI 网站,但这么好玩的东西我们怎么错过呢?本文就介绍一种在 GitLab Issue 中与 ChatGPT 聊天的方式,无需顾虑网络问题即可与 ChatGPT 畅聊!

预先准备

如果您只想和 ChatGPT 聊天,那么您仅需访问 https://gitlab.com/guoxudong.io/chatgpt-in-issue/-/issues/2 ,在该 Issue(或者新建的 Issue)中 Comment,ChatGPT 就会自动回复您的消息,效果如下:

ChatGPT in Issue

如果您想自己在 GitLab 中与 ChatGPT 进行聊天,那么你需要:

  • 注册 gitlab.com[2] 账号
  • 注册 openai[3] 账号

Tips:如果您希望使用 Self-Manager(自部署)版或者 jihulab.com,那么请确保您的 GitLab Runner 能正常访问到 https://api.openai.com

具体的注册方法我就不再赘述了,已经有很多文章在介绍如何注册了。

原理解析

实现的原理非常的简单,利用 GitLab Comment Webhook[4] 触发运行 GitLab CI Pipeline,在 Pipeline Job 中调用 ChatGPT API 与 GitLab API 来完成提问的接收与回复。

也就是说您需要配置的只有 GitLab Webhook + GitLab CI + ChatGPT

更多关于使用 Webhook 触发 Pipline,请阅读之前的文章《GitLab 冷知识:使用 GitLab Webhook 触发 Pipeline》

操作步骤

那么现在我们就开始配置我们的 GitLab Project,让我们的 Issue comment 来自动回复吧!

创建 GitLab Project

可以新建一个 GitLab Project 或使用已有的 Project。

创建 GitLab Project

配置 Pipeline Trigger

根据下面步骤获取 Webhook 触发令牌:

Settings -> CI/CD -> Pipeline triggers -> Add trigger -> Copy Token

pipeline triggers

配置 Webhook

Settings -> Webhooks -> 勾选 Comments

URL 中插入:https://GITLAB_HOST/api/v4/projects/PROJECT_ID/ref/REF_NAME/trigger/pipeline?token=TOKEN

其中:

  • GITLAB_HOST 为 GitLab 实例的域名,如:https://jihulab.com
  • PROJECT_ID: 项目 ID
  • REF_NAME: 分支名称
  • TOKEN: 触发令牌,请将上一步中生成的 token 复制到这里

最后点击 Add Webhook

Webhook

获取 OpenAI API Token

登录并访问 https://beta.openai.com/account/api-keys 点击 Create new secret key 并复制生成的 Token。

OpenAI API Token

获取 GitLab Access Token

访问 https://gitlab.com/-/profile/personal_access_tokens 生成一个 access token 用于调用 GitLab API。

这里需要勾选 api

Access Token

配置 CI/CD Variables

现在就可以将获取的 Token 配置为 CI/CD Variables:

Settings -> CI/CD -> Variables -> Add ariable

将上文获取的 OpenAI API TokenGitLab Access Token 添加为 Variables,对应的 Key 分别为 API_KEYGITLAB_API_TOKEN

CI/CD Variables

新增 .gitlab-ci.yml

前期准备工作已经差不了,现在只需创建 .gitlab-ci.yml 并提交以下内容:

代码语言:javascript
代码运行次数:0
运行
复制
job:
  image: registry.gitlab.com/guoxudong.io/chatgpt-in-issue:latest
  script:
    - app
  only:
    - trigger

Let's Chat

现在我们就可以在 Issue 中使用 comment 进行聊天了!开始我们开始快乐的聊天吧。本项目使用的源码均已上传,有兴趣的同学可以自行查看: https://gitlab.com/guoxudong.io/chatgpt-in-issue 。

chat with chagpt

参考资料

[1]

ChatGPT: https://chat.openai.com/chat

[2]

gitlab.com: https://gitlab.com

[3]

openai: https://openai.com

[4]

GitLab Comment Webhook: https://docs.gitlab.com/ee/user/project/integrations/webhook_events.html#comment-events

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022/12/14 08:18:00,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云原生之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 预先准备
  • 原理解析
  • 操作步骤
    • 创建 GitLab Project
    • 配置 Pipeline Trigger
    • 配置 Webhook
    • 获取 OpenAI API Token
    • 获取 GitLab Access Token
    • 配置 CI/CD Variables
    • 新增 .gitlab-ci.yml
  • Let's Chat
    • 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档