今天,魔搭社区开放了免费的开源模型推理API,仅需使用魔搭的SDK Token,就可以通过简单的API请求探索各种强大的开源模型的使用。通过API-Inference接口,无需本地的GPU和环境设置,就能轻松的依托不同开源模型的能力,展开富有创造力的尝试,与工具结合调用,来构建多种多样的AI应用原型。
01.用API-Inference建立与开源模型的链接
魔搭开源模型推理API提供了一种快速且免费的方式来探索不同任务的模型。当前的公测期间,我们主要通过提供OpenAI格式兼容的大语言模型API接口。后续更多魔搭上的开源模型,也会陆续接入来为开发者提供更好的推理API服务,包括:
- 多模态文本生成:包括视觉理解大模型和语音多模态大模型。
- 图像生成:使用当下流行的文生图模型轻松生成图像。
- 经典人工智能任务:比如语音识别,语音合成,图像分割等。
各位开发者小伙伴有希望尽快支持的开源模型,欢迎在留言区积极留言模型id,点赞排名靠前的开源模型,我们将会优先支持。
02.公测期间支持的模型
我们处在一个模型飞速发展的时代,API-Inference主要为在魔搭社区中获得广泛关注的开源模型(参考了点赞,下载等数据)提供便利的调用接口。因此,在能力更强,关注度更高的下一代开源模型发布之后,现有的模型支持清单也会持续迭代。当前支持的模型列表如下:
- Qwen/Qwen2.5-Coder-32B-Instruct
- Qwen/Qwen2.5-Coder-14B-Instruct
- Qwen/Qwen2.5-Coder-7B-Instruct
- Qwen/Qwen2.5-72B-Instruct
- Qwen/Qwen2.5-32B-Instruct
- Qwen/Qwen2.5-14B-Instruct
- Qwen/Qwen2.5-7B-Instruct
当前的公测期间,模型列表的更新和迭代,我们会通过文档,社区公告以及公众号等方式发布。后续我们会积极推进API-Inference作为魔搭整体模型服务体系一部分的产品化工作,在不断扩展模型覆盖范围的同时,也会直接在相关模型页面上,直接透出API-Inference的可用性。魔搭免费推理API的目标一直都是:将更好的更多的模型被更多的人体验和使用。
03.使用方法
当前魔搭平台提供的免费模型推理API,针对大语言模型提供OpenAI API兼容的接口。在通过pip install openai安装OpenAI的library,就可以通过标准的调用方式使用:
from openai import OpenAI client = OpenAI( api_key="MODELSCOPE_SDK_TOKEN", # ModelScope Token base_url="https://api-inference.modelscope.cn/v1" ) response = client.chat.completions.create( model="Qwen/Qwen2.5-Coder-32B-Instruct", # ModleScope Model-Id messages=[ { 'role': 'system', 'content': 'You are a helpful assistant.' }, { 'role': 'user', 'content': '用python写一下快排' } ], stream=True ) for chunk in response: print(chunk.choices[0].delta.content, end='', flush=True)
在这个范例里,针对魔搭平台提供的API,适配的有几个地方:
- base url 指向魔搭的服务:https://api-inference.modelscope.cn/v1/
- api_key 使用魔搭的SDK token
- 模型名字(model)使用魔搭上开源模型的Model Id,例如Qwen/Qwen2.5-Coder-32B-Instruct
这其中,魔搭的SDK Token,可以从您的魔搭账号中获取:
https://modelscope.cn/my/myaccesstoken
即开即用Notebook分享链接:
https://modelscope.cn/notebook/share/ipynb/86e5ec04/Qwen-Coder-inference-api.ipynb.ipynb
Note:魔搭免费推理API,旨在为开发者提供迅速免费的便捷模型调用方式,会根据实际平台的压力灵活的调整速率限制,请勿用于需要高并发以及SLA保障的线上任务,如有商业化使用的需求,建议使用各商业化平台的API。当前我们为每位魔搭注册用户提供了每天2000个请求的使用容量,希望开发者们能够喜欢。
04.最佳实践
Cursor+Inference API 代码助手
我们选取了使用Cursor来实现魔搭API-Inference的最佳实践,这里我们选用了魔搭提供的Qwen2.5-Coder-32B-Instruct模型的免费推理API,来提升开发者的开发效率。
第一步:环境配置
在获取 api_key(ModelScope SDK Token),base_url(https://api-inference.modelscope.cn/v1),以及model(Qwen/Qwen2.5-Coder-32B-Instruct)信息后,将其填写到Cursor的模型配置页面(设置->模型)
第二步:代码生成
使用Cursor chat功能(command+i),写一个“番茄钟”小应用
prompt:
代码生成ing:
效果:
第三步:tab键写个说明书
用万能tab,写一个产品说明书
第四步:代码解读,应用完善
使用多轮对话,或者chat,edit等能力,进一步完善应用
完整操作视频:
WebUI+Inference API 本地对话助手
第一步:安装依赖和配置 API key
!pip install gradio modelscope_studio openai
第二步:封装用户输入和对话界面
有了一个基础对话流程后,我们可以借助 gradio 来将它封装为一个对话界面。
使用最基础的 gr.ChatInterface 即可完成一个最基础的对话界面。
import gradio as gr from openai import OpenAI import os client = OpenAI( api_key=os.getenv("MODELSCOPE_ACCESS_TOKEN"), base_url="https://api-inference.modelscope.cn/v1" ) def chat(prompt, history): messages = [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": prompt} ] try: response = client.chat.completions.create( model="Qwen/Qwen2.5-7B-Instruct", messages=messages, ) yield response.choices[0].message.content except Exception as e: yield str(e) # 仅在 Notebook 中使用需要一下代码,如果之前已经定义过 `app`,关闭它 try: app.close() except NameError: # 如果 `app` 不存在,忽略这个异常 pass # end app = gr.ChatInterface(fn=chat, title="Basic Chat") app.launch(server_port=7860)
即开即用Notebook分享链接:https://modelscope.cn/notebook/share/ipynb/685a5164/basic-chat.ipynb
点击链接阅读原文:https://modelscope.cn/notebook/share/ipynb/685a5164/basic-chat.ipynb