Git Product home page Git Product logo

chatgpt-feishu's Introduction

Hi 👋 My name is HuanCheng Bai

Ultimate Developer

Skills

GoJavascriptPHPPythonTypescriptSwiftReactVueTailwindCSSNodeJSExpressJSMongoDBMySQLHerokuLavarelFigma

My Socials

chatgpt-feishu's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

chatgpt-feishu's Issues

有的问题无法返回内容,稳定重现

问:
我是学习计算机科学与技术的一名大学学生,随着科技智能的发展,很多工作岗位都会被取代,我想问一下关于我这一个学科将来的就业发展方向,请按照推荐优先级罗列30条较低被智能取代可能的就业方向,并简要介绍(可以多产生几次答案嘛)

TypeError: Cannot read properties of undefined (reading 'data')
    at getOpenAIReply (/code/functions/hello.js:168:24)
    at async handleReply (/code/functions/hello.js:266:26)
    at async module.exports (/code/functions/hello.js:327:14)

> > 如果是aircode的问题,

          > > 如果是aircode的问题,

建议出个本地部署版,
服务器大家应该都有很多的.

群内 Pin 了一个本地部署的版本,可以看看

基于群内pin版本,打包了个docker,填下自己的参数就搞定了.
目前可以确定是aircode的服务不行了,自建的话,分分钟响应.

  • docker-compose.yml
version: '3.0'
services:
    chatgpt:
        container_name: chatgpt
        ports:
            - '9000:9000'
        environment:
            - APPID=cli_xxxxxx
            - SECRET=MuOOF7xxxxxxx
            - BOTNAME=chatgpt
            - KEY=sk-xxxxxx
        #restart: always
        image: jonnyan404/chatgpt

Originally posted by @Jonnyan404 in #42 (comment)

配置自检查能力

可以检测当前请求是否是直接从浏览器当中访问的

然后判断一下用户的配置是否正常

  • 飞书的 id -> 以cli开头
  • openai 的id -> 以 sk 开头

如果正常,返回一个

{
   "code":0,
   "message":"everything is ok"
}

如果不正常,则提示哪个环境变量没有配置。

面向多轮对话调优

面向多轮对话调优。

具体实现思路:

  1. 将每次用户发的问题记录下来;
  2. 拼接成新的对话,并发给 OpenAI。
  3. 如果新的对话长度超出限制,则去除前面的对话问题。

Bot/User can NOT be out of the chat.

image

image
请教一下,这个错误如何解决,接口响应400,但实际在data中可以看到ChatGPT的回复,但在飞书中无法收到消息,尝试过重新部署也没有解决这个错误,提前感谢🙏

支持处理 @ 多个人的场景

支持处理 @ 多个人的场景。先全部替换掉,然后把 chatgpt 给置空。不过也要考虑 ChatGPT 是第二个人的时候的处理逻辑。

参数调优

参考 https://github.com/zhayujie/chatgpt-on-wechat/blob/25c2f1add72b732c350c79e298d74bd366f57f82/bot/openai/open_ai_bot.py#L40 做了一些调整,供其他人参考。

// 通过 OpenAI API 获取回复
async function getOpenAIReply(content) {
    var question = "你是 ChatGPT, 一个由 OpenAI 训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。\n请回答我下面的问题\nQ: " + content + "\nA: ";
  
    var data = JSON.stringify({
        "model": "text-davinci-003",
        "prompt": question,
        "max_tokens": 1024,
        "temperature": 0.9,
        "frequency_penalty": 0.0,
        "presence_penalty": 0.0,
        "top_p": 1,
        "stop":["#"]
    });

    var config = {
        method: 'post',
        maxBodyLength: Infinity,
        url: 'https://api.openai.com/v1/completions',
        headers: {
            'Authorization': `Bearer ${process.env.KEY}`,
            'Content-Type': 'application/json'
        },
        data: data
    };

    const response = await axios(config)
    // 去除多余的换行
    return response.data.choices[0].text.replace("\n\n", "")
}

image

添加完人设后,答案不会那么天马行空。

Seek help

Please tell me how to switch to the ChatGPT3.5 model, how to upgrade to the latest update, thank you!

实现错误处理

这一版代码并没有去 catch 错误,所以如果你有空,可以给所有可能出错的地方补充 catch 的逻辑,帮助用户规避一些错误的场景。

支持通过环境变量配置模型

不同场景下对于模型的需求是不同的,因此可以支持从环境变量当中读取模型的名称,从而实现模型的降低,降低使用的成本。

默认可以选择 text-davinci-003

怎么重新开始一段对话?

我在飞书中做了个试验,让他重复我说的每句话。
结果现在回不去了,他只会重复了。

这种情况下怎么重新开始一段对话呢?

可以在个人服务器运行吗

可以出一版,在个人服务器运行的吗?aircode老收不到飞书请求。。。早上发的,下午才突然回复。

加入 axios 超时配置

动机:中文问题 openai 返回很慢,因此加入超时设置,让 bot 尽快返回。

修改:

data: data,
处添加 “timeout: 5000” 类似配置。

更好一点:将超时配置设置为环境变量,让用户自行选择。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.