如何用OpenAI的形式流式访问ChatGLM2-6B?30行代码简单解决!

    最近我正在开发基于LangChain的知识库。为了降低tokens的费用,需要完成接口替换。将原来调用OpenAI接口的方式改为使用ChatGLM2-6B接口。这样的改变不仅可以节省成本,还能提高文本输出速度。以下是我们在实践中取得的成果,现在与大家分享!

一、环境配置:

下载chatglm2-6B库:https://github.com/THUDM/ChatGLM2-6B.git

启动python openai_api.py

监听端口为8000。

二、代码编写:

1、首先要有一个“openai.api_key”,这里直接输入个test进行测试即可。

2、还要有一个域名,这里设置的是“http://localhost:8000/v1”

3、用chatglm2-6b查询输入的文字

(4、输出总耗时)

总代码如下:

import openai
import time
import json

openai.api_key = 'test'
openai.api_base = "http://localhost:8000/v1"
start_time = time.time()
while True:
    query = input("请输入:")
    if "end" == query:
        break
    start_time = time.time()
    response = openai.ChatCompletion.create(
            model="chatglm2-6b",
            messages=[
                {"role": "system", "content": ""},
                {"role": "user", "content": query}
                ],
            stream = True
            )
    response_time = time.time()
    print(f'请求耗时:{response_time - start_time:.2f} s')
    for i in response:
        t = time.time()
        if "content" in i.choices[0].delta:
            msg = i.choices[0].delta.content
            print(msg, end='', flush=True)
    print(f'\n总耗时: {t - start_time:.2f} s')
    print("===结束===")

三、运行此文件即可进行测试,效果如下:

请输入:讲一个笑话

请求耗时:0.00 s

下面是一个简短的笑话:

为什么小鸟站在电线上不会被电到呢?

因为它们不接地啊!

总耗时: 0.67 s

===结束===

     以上就是我在配置并使用OpenAI的形式流式访问ChatGLM2-6B的简单方法,希望可以帮到大家。欢迎发私信与我共同讨论更多该领域的知识!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值