当前位置: 首页 > article >正文

Golang引入chatGPT

Golang 引入chatGPT

文章目录

  • Golang 引入chatGPT
    • 1 前提条件
    • 2 官方示例
    • 3 开始引入

1 前提条件

  1. 注册openAi账号,获取密钥key

    ​ 1. 参考链接

    ​ 2.参考链接

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jFGolYUb-1680350283671)(F:\CRoaming\Typora\typora-user-images\image-20230401193839199.png)]

  2. 科学上网,配置代理服务器

    1. 参考链接
  3. 配置好基本的go开发环境

2 官方示例

Libraries - OpenAI API

选择go语言的进行参考

3 开始引入

  1. 简单示例

    //1  下载openai的依赖
    go get github.com/sashabaranov/go-openai
    // 2 新建main文件引入依赖
    main.go
    
    package main
    
    import (
    	"context"
    	"fmt"
    	openai "github.com/sashabaranov/go-openai"
    )
    
    func main() {
    	client := openai.NewClient("your token")  // 填入你自己的openaikey
    	resp, err := client.CreateChatCompletion(
    		context.Background(),
    		openai.ChatCompletionRequest{
    			Model: openai.GPT3Dot5Turbo,
    			Messages: []openai.ChatCompletionMessage{
    				{
    					Role:    openai.ChatMessageRoleUser,
    					Content: "Hello!",   // 向chatgpt发送的信息
    				},
    			},
    		},
    	)
    
    	if err != nil {
    		fmt.Printf("ChatCompletion error: %v\n", err)
    		return
    	}
    
    	fmt.Println(resp.Choices[0].Message.Content)  // 返回chatgpt响应的信息
    }
    
    
    1. 配置代理服务器(国内无法访问chatgpt,我们需要科学上网,配置代理服务器。然后访问代理服务器的映射出来的本地端口)

      config := openai.DefaultConfig("token")
      proxyUrl, err := url.Parse("http://localhost:{port}") // 你本机电脑的代理服务器的本地映射端口
      if err != nil {
      	panic(err)
      }
      transport := &http.Transport{
      	Proxy: http.ProxyURL(proxyUrl),
      }
      config.HTTPClient = &http.Client{
      	Transport: transport,
      }
      
      c := openai.NewClientWithConfig(config)
      

3 运行测试

我是运行项目开的5000端口,代理服务器端口为9001

“msg”为每次提问的问题

参考gitee项目

在这里插入图片描述


http://www.kler.cn/a/5362.html

相关文章:

  • NRC优先级中比较特殊的—NRC0x13和NRC0x31
  • Eclipse配置Tomcat服务器(最全图文详解)
  • unity学习14:unity里的C#脚本的几个基本生命周期方法, 脚本次序order等
  • 汇编实现函数调用
  • flutter 专题二十四 Flutter性能优化在携程酒店的实践
  • 数据库模型全解析:从文档存储到搜索引擎
  • P2573 [SCOI2012]滑雪
  • Facebook多账号运营怎么防关联?
  • 显卡驱动一定要更新吗?怎么更新显卡驱动?
  • k8s之command、args 与 CMD、ENTRYPOINT的对应关系
  • 【H3C】VRRP2 及Vrrp3基本原理 华为同用
  • 【目标检测】---- YOLOX 旷视2021
  • 干货 | 关于逆变器,这些小知识你都了解么?
  • 给大家讲个笑话,拿了个offer,因为体检查出脂肪肝,公司把我拒绝了!
  • 用Owncast构建直播服务器
  • vue中的数据代理、
  • 积性函数及其初级应用
  • 秒懂算法 | 基于主成分分析法、随机森林算法和SVM算法的人脸识别问题
  • [技术杂谈]小米手机如何将锁屏快捷方式放桌面
  • 《安富莱嵌入式周报》第306期:开源独轮车,Cortex-M85修订版r1发布,Terathon图形数学库,不断变革的IDE开发环境,各个厂家总动员
  • Leetcode.1024 视频拼接
  • 让chatGPT当我的老师如何? 通过和chatGPT交互式学习,了解在ES中,一条JSON数据是如何写到磁盘上的
  • 接触过的第一台电脑-90年代的x86与如今的树莓派
  • Redis主从集群搭建
  • 【Spring6】| Bean的作用域
  • Python基于周立功盒子的二次开发的准备工作