采用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库,需要时进行导入,这样也太完美了!

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
当然,我可以帮助你部署ChatGPT模型。以下是一步一步的指南: 步骤1:准备环境 首先,你需要一个Python环境来运行模型。确保你已经安装了Python 3.6或更高版本。 步骤2:安装依赖项 在命令行中打开一个新的终端窗口,并使用以下命令安装所需的依赖项: ``` pip install transformers flask ``` 步骤3:下载并解压模型 从CSDN下载chatglm2-6b模型的权重文件,并将其解压缩到你选择的目录中。 步骤4:创建Flask应用程序 在你选择的目录中创建一个名为app.py的Python文件,并使用以下代码创建一个基本的Flask应用程序: ```python from flask import Flask, request, jsonify from transformers import GPT2LMHeadModel, GPT2Tokenizer app = Flask(__name__) model_path = "path/to/your/model" tokenizer = GPT2Tokenizer.from_pretrained(model_path) model = GPT2LMHeadModel.from_pretrained(model_path) @app.route("/chat", methods=["POST"]) def chat(): data = request.json input_text = data["input_text"] input_ids = tokenizer.encode(input_text, return_tensors="pt") output = model.generate(input_ids, max_length=100) response = tokenizer.decode(output[0], skip_special_tokens=True) return jsonify({"response": response}) if __name__ == "__main__": app.run(host="0.0.0.0", port=5000) ``` 步骤5:运行应用程序 在终端窗口中,导航到包含app.py文件的目录,并运行以下命令来启动应用程序: ``` python app.py ``` 步骤6:测试应用程序 使用HTTP客户端(如Postman或cURL)向http://localhost:5000/chat发送POST请求,并在请求正文中包含以下JSON数据: ```json { "input_text": "你想说的话" } ``` 你将收到一个包含ChatGPT模型生成的响应的JSON响应。 这就是部署chatglm2-6b模型的基本步骤。你可以根据需要进行修改和扩展。希望这可以帮助到你!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值