0


采用API的方式调用本地chatGLM2-6B,postman方式访问接口,openai格式调用接口

简单记录一下成功通过本地api方式访问chatGLM2-6B的接口

前面已经在本地Win11系统部署chatGLM2-6B完成,接着前面的项目目录。现在尝试使用API的方式调用大模型接口。

1、采用普通api进行调用

按照官方文档,应该是先安装fastapi uvicorn这个库

pip install fastapi uvicorn

这里我已经安装完成。

开始运行api.py,还是把模型修改为本地路径:

OK,运行没有任何报错:

我们先打开网址http://127.0.0.1:8000/看一下:

这说明接口至少是能够访问的。

官方推荐:

采用curl带参数的命令进行访问,这是Linux的访问方式,在windows我决定用postman测试一下,这里先安装好postman。安装过程需要注册,这边省略掉~~

打开postman,新建一个访问接口。

选择post,URL,并在消息头中填写参数,如下:

再在body中选择raw,将JSON格式的请求内容写进入:

点击send:

成功接收到接口返回的消息,接口调通!

2、采用openai的方式调用接口

除了支持上述的api调用,chatGLM也支持 OpenAI 格式的流式 API 部署,如下这种:

可以看到,直接导入openai库,然后输入一些模式,就可以像其他库一样调用,确实非常方便,我们这里进行尝试。

首先安装openai

pip install openai==0.28.1

这里必须要指定版本,如果不指定,会默认安装最新的版本,超过1.0了,后续代码会报错。

安装好之后启动openai_api.py

我们发现,成功启动,没有报错。

直接运行这段代码:

import openai
if __name__ == "__main__":
    openai.api_base = "http://localhost:8000/v1"
    openai.api_key = "none"
    for chunk in openai.ChatCompletion.create(
        model="chatglm2-6b",
        messages=[
            {"role": "user",
             "content": "你好!"}
        ],
        stream=True
    ):
        if hasattr(chunk.choices[0].delta, "content"):
            print(chunk.choices[0].delta.content, end="", flush=True)

嗯?怎么报错了呢?

看这报错信息,我也确实没有看懂,网上找了半天方法,甚至试了关代理,重启电脑等,但是都不是关键的,后边在百度搜索如何解决,直到看到:ChatGLM流式输出的报错修复_chatcompletionresponse然后返回值-CSDN博客

我进行尝试,将所有的:

chunk.json(exclude_unset=True, ensure_ascii=False)

替换为:

chunk.model_dump_json(exclude_unset=True)

再次运行:

OK!确实没有任何问题。哇哦,感谢大佬。

这种调用方式,直接将chatGLM变为一个python库,需要时进行导入,这样也太完美了!

标签: python chatgpt

本文转载自: https://blog.csdn.net/weixin_42118737/article/details/138337821
版权归原作者 AI进化中 所有, 如有侵权,请联系我们删除。

“采用API的方式调用本地chatGLM2-6B,postman方式访问接口,openai格式调用接口”的评论:

还没有评论