chatgpt

package
v0.0.0-...-ff1ea2f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 4, 2023 License: AGPL-3.0 Imports: 18 Imported by: 0

README

介绍

🔔 注意:以下[]符号内代表此处是需要填写内容,并且不需要[]符号

配置参数

  • 插件名:ChatGPT聊天,已支持GPT-3.5-turbo模型
  • 权限:所有好友和群聊
  • 数据来源:https://beta.openai.com
  • 注意:请先私聊机器人配置appKey,相关秘钥申请地址点上面链接
  • 指令:
    • set chatgpt apiKey [keys],(多个key用;符号隔开),设置ChatGPT的apiKey,apiKey可小写apikey
    • del chatgpt apiKey [keys],(多个key用;符号隔开), 删除ChatGPT的apiKey,apiKey可小写apikey
    • set chatgpt model [key=val]kv请参考下面表格,没做过多校验,请保证设置正确
    • reset chatgpt model,重置GPT的模型配置
    • get chatgpt info 获取ChatGPT的信息
    • set chatgpt proxy [url],设置api.openai.com的代理地址,需要完整的如:https://api.googlevideo.dev/v1
    • del chatgpt proxy,删除api.openai.com 代理地址
    • set chatgpt http_proxy [url],设置本地http代理地址,clash如:http://127.0.0.1:7890
    • del chatgpt http_proxy,删除本地http代理地址
    • get chatgpt (sensitive|敏感词),获取敏感词列表,内置了一些敏感词,如果不想使用,请使用下面删除指令
    • set chatgpt (sensitive|敏感词) [敏感词],设置敏感词,多个敏感词用,符号隔开
    • del chatgpt (sensitive|敏感词) [敏感词],删除敏感词,仅支持单个敏感词
    • reset chatgpt (sensitive|敏感词),重置系统敏感词
    • del chatgpt system (sensitive|敏感词),删除系统敏感词
    • del chatgpt user (sensitive|敏感词),删除用户敏感词
    • del chatgpt all (sensitive|敏感词),删除所有敏感词
  • 附录:
    • kv可选值参考下面表格:
      k 可选值 v 类型 v 可选值
      ModelName string 默认:gpt-3.5-turbo
      可选:gpt-3.5-turbo gpt-3.5-turbo-0301
      MaxTokens int 默认:512
      Temperature float32 默认:0.9
      TopP float32 默认:1.0
      FrequencyPenalty float32 默认:0.0
      PresencePenalty float32 默认:0.6
      ImageSize string 默认:512x512
      可选:请参考 https://github.com/sashabaranov/go-gpt3/blob/master/image.go#L15

聊天与角色扮演

  • 说明:维护每个群每个用户的上下文,可进行角色扮演,同一个用户不同群的上下文是独立的
  • 指令:
    • @机器人 [内容],进行AI对话,计入上下文
    • @机器人 提问 [问题],进行单独提问,不计入上下文
    • @机器人 作画 [描述],进行AI作画
    • @机器人 清空会话,可清空与您的上下文
    • @机器人 角色列表,查看角色列表
    • @机器人 当前角色,获取当前用户的AI角色
    • @机器人 创建角色 [角色名] [角色描述],创建角色
    • @机器人 删除角色 [角色名],删除角色
    • @机器人 切换角色 [角色名],切换角色

预览:

img img img

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNoKey              = fmt.Errorf("请先私聊机器人配置apiKey\n")
	ErrMaxTokens          = errors.New("上下文长度限制为4097个词组,您的上下文长度已超出限制")
	ErrExceededQuota      = errors.New("配额已用完,请联系管理员")
	ErrIncorrectKey       = errors.New("ApiKey错误,请联系管理员")
	ErrServiceUnavailable = errors.New("提问频率过快,请稍后再试")
)
View Source
var SystemRole = ordermap.NewOrderMap()

Functions

func AskChatGpt

func AskChatGpt(ctx *robot.Ctx, messages []openai.ChatCompletionMessage, delay ...time.Duration) (answer string, err error)

AskChatGpt 向ChatGPT请求回复

func AskChatGptWithImage

func AskChatGptWithImage(ctx *robot.Ctx, prompt string, delay ...time.Duration) (b64 string, err error)

AskChatGptWithImage 向ChatGPT请求回复图片

Types

type ApiKey

type ApiKey struct {
	Key string `gorm:"column:key;index"`
}

ApiKey 表名:apikey,存放openai key

type ApiProxy

type ApiProxy struct {
	Id  uint   `gorm:"column:id;index"`
	Url string `gorm:"column:url;"`
}

ApiProxy 表名:apiproxy,存放openai 代理url地址

type ChatRoom

type ChatRoom struct {
	// contains filtered or unexported fields
}

ChatRoom chatRoomCtx -> ChatRoom => 维系每个人的上下文

type GptModel

type GptModel struct {
	Model            string  `gorm:"column:model"`
	MaxTokens        int     `gorm:"column:max_tokens"`
	Temperature      float64 `gorm:"column:temperature"`
	TopP             float64 `gorm:"column:top_p"`
	PresencePenalty  float64 `gorm:"column:presence_penalty"`
	FrequencyPenalty float64 `gorm:"column:frequency_penalty"`
	ImageSize        string  `gorm:"column:image_size"`
}

GptModel 表名:gptmodel,存放gpt模型相关配置参数

type SensitiveWords

type SensitiveWords struct {
	Type    int    `gorm:"column:type;index"`    // 1:内置敏感词,2:自定义敏感词
	Word    string `gorm:"column:word;index"`    // 敏感词
	Deleted int    `gorm:"column:deleted;index"` // 0:未删除,1:已删除
}

SensitiveWords 表名:sensitive,存放敏感词

type SystemRoles

type SystemRoles struct {
	Role string `gorm:"column:role"`
	Desc string `gorm:"column:desc"`
}

SystemRoles 表名:roles,存放系统角色

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL