如何调用星火API,将语言大模型部署到本地

ChatGPT、文心一言、讯飞星火等生成式语言大模型功能极其强大,正在改变传统的搜索模式。将大模型部署到本地,是指通过调用API的形式直接使用大模型,而不需要通过浏览器去使用。本地化的好处有两点:一是直接使用大模型,方便快捷;二是将大模型内置到自己的应用开发中。当然,调用API也有些弊端,比如要消耗一定流量。讯飞星火提供了200万的免费token,相当于300万中文字符。接下来,介绍如何调用讯飞星火API。

一、注册账号,获取秘钥

  1. 点击讯飞官方网站,首先注册账号;
  2. 进入API设置界面,点击图1左下角API接入;
    图1

3. 点击下图免费试用,按提示进行相关操作,进入开发者平台
图2
我们还可以向下拖动滚动条,免费领取200万token(1tokens 约等于1.5个中文汉字 或者 0.8个英文单词),相当于300万中文。
在这里插入图片描述
不用付费,确认下单。
在这里插入图片描述
进入API应用平台,找到秘钥。
图3 开发者平台
在上图开发者平台右上角,我们可以看到APPID、APISecret和APIKey,这就是后面要用到的秘钥。

二、输入秘钥,快速调用API

1. 从API开发者平台首页进入,如下图所示
在这里插入图片描述
2. 点击开发文档,进入如下页面:
在这里插入图片描述
至此,我们可以看到星火官方已经在上图给出了快速调用API的方法,但是使用起来并不顺利,暂略。

三、下载星火demo文件,保存到本地

1. 在将上图网页滚动条拉倒最后,可以找到我们需要的py文件,点击即可下载。
在这里插入图片描述
上述两个py文件其实是独立的,第一个“Python调用示例”文件是单次对话;第二个则可以连续对话。这里我们先介绍第二个的使用方法。

2. 下载完成后,解压第二个压缩包,可以看到两个py文件:
第一个文件是:SparkApi,不需要做改动的
第二个文件是:demo文件,可以修改在这里插入图片描述
3. 复制或剪切这两个py文件到Anaconda的当前工作路径下。

在编辑器中,输入一下代码,可以打开当前路径:

import os
current_path = os.getcwd()  # 获取当前工作目录
os.startfile(current_path)  # 打开当前路径文件夹

打开当前路径,将py文件移动到此。
接下来,在编辑器中调用第一个文件:

import AparkApi

如果没有报错,那么说明已经成功将SparkApi.py文件放置到了当前路径。另外,可能出现提示缺少安装包,可以根据提示下载。

可能需要在promt中下载:

pip install --upgrade spark_ai_python
pip install websocket # 我的提示缺少websocket, 所以我下载了。

四、简单封装,为我使用

在Spyder等编辑器中打开第二个py文件:SparkPythondemo.py。复制如下:

# coding: utf-8
import SparkApi
import time
#以下密钥信息从控制台获取   https://console.xfyun.cn/services/bm35
appid = "XXXXXXXX"     #填写控制台中获取的 APPID 信息
api_secret = "XXXXXXXXXXXXXXXXXXXXXXXX"   #填写控制台中获取的 APISecret 信息
api_key ="XXXXXXXXXXXXXXXXXXXXXXXX"    #填写控制台中获取的 APIKey 信息

domain = "generalv3.5"      # Max版本
#domain = "generalv3"       # Pro版本
#domain = "general"         # Lite版本

Spark_url = "wss://spark-api.xf-yun.com/v3.5/chat"   # Max服务地址
#Spark_url = "wss://spark-api.xf-yun.com/v3
### 星火大模型API部署超时解决方案 对于星火大模型API部署过程中遇到的超时问题,可以从多个角度进行优化和调整。以下是具体的建议: #### 1. 增加请求超时时间配置 如果当前使用的客户端默认设置了较短的超时时间,则可以通过修改这些参数来延长等待响应的时间。例如,在Python环境中使用`requests`库发送HTTP请求时可以指定更长的timeout值。 ```python import requests response = requests.post( url='https://your-starfire-model-endpoint', headers={'Authorization': 'Bearer YOUR_API_KEY'}, json=payload, timeout=60 # 设置为60秒或其他适当数值 ) ``` #### 2. 提升服务器性能与资源分配 确保运行该服务的基础架构具有足够的计算能力和内存支持。当处理大型语言模型推理任务时尤其重要,因为这类操作往往消耗较多CPU/GPU周期以及RAM空间。考虑升级硬件设施或增加云实例规格以满足需求[^1]。 #### 3. 实施异步调用机制 采用非阻塞式的编程模式可以让应用程序更好地管理并发连接数并提高整体效率。比如利用消息队列(如RabbitMQ)、事件驱动框架(Node.js中的EventEmitter)等方式实现后台批量处理作业而不必一直占用主线程直到完成全部工作流程为止[^2]。 #### 4. 缓存常用数据片段 针对那些频繁被查询却变化缓慢的信息项建立本地缓存副本,减少不必要的远程调用次数从而加快响应速度。Redis是一个不错的选择因为它不仅具备高速读取特性而且易于集成到现有系统当中去[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐之杂货铺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值