阿里云百炼通义大模型
阿里云百炼通义大模型
- Part one(阿里云百炼大模型)
- 一、什么是百炼
- (一)调用大模型
- 二、支持的大模型
- 三、模型总览
- 四、为什么选择百炼?
- 五、开始使用百炼
- Part two
- 一、开发参考
- 二、模型调用
- (一)通义千问API参考
- 1.文本输入
- 2.流式输出
- 3.图像输入
- 4.视频输入
- 5.工具调用
- 6.联网搜索
- 7.异步调用
- 8.文档理解
- 9.文字提取
Part one(阿里云百炼大模型)
阿里云百炼通义大模型企业级服务平台,助力企业轻松打造最优落地效果的AI应用
一、什么是百炼
阿里云的大模型服务平台百炼是一站式的大模型开发及应用构建平台。不论是开发者还是业务人员,都能深入参与大模型应用的设计和构建。您可以通过简单的界面操作,在5分钟内开发出一款大模型应用,或在几小时内训练出一个专属模型,从而将更多精力专注于应用创新。
(一)调用大模型
只需如下几行代码,即可与大模型进行对话,实现内容创作、摘要生成等。
百炼兼容OpenAI接口规范,base_url为https://dashscope.aliyuncs.com/compatible-mode/v1
import os
from openai import OpenAI
client = OpenAI(
# 若没有配置环境变量,请用百炼API Key将下行替换为:api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"), # 如何获取API Key:https://help.aliyun.com/zh/model-studio/developer-reference/get-api-key
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen-plus", # 模型列表:https://help.aliyun.com/zh/model-studio/getting-started/models
messages=[
{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': '你是谁?'}
]
)
print(completion.choices[0].message.content)
二、支持的大模型
旗舰模型 | 通义千问-Max适合复杂任务,推理能力最强 | 通义千问-Plus效果、速度、成本均衡 | 通义千问-Turbo适合简单任务,速度快、成本极低 | 通义千问-Long适合大规模文本分析,效果与速度均衡、成本较低 |
---|---|---|---|---|
最大上下文长度(Token数) | 32,768 | 131,072 | 1,000,000 | 10,000,000 |
Token是指模型处理和生成文本时的基本单元,中文的Token通常是一个字或词,英文的Token通常是一个单词、子词或词组。
除了上述文生文的通义大模型,百炼还支持图像、音视频、数学、法律等方面的通义大模型。
同时,百炼也支持众多第三方大模型,例如DeepSeek、Llama、ChatGLM、零一万物、Stable Diffusion等。
关于所有模型以及详细信息,请参见模型总览。
三、模型总览
类别 | 模型 | 说明 |
---|---|---|
文本生成 | 通义千问 | 通义千问大语言模型:商业版(通义千问-Max、通义千问-Plus、通义千问-Turbo)、开源版(QwQ、Qwen2.5、Qwen2、Qwen1.5、Qwen)、超长文档模型Qwen-Long;多模态模型:视觉理解模型通义千问VL、音频理解模型通义千问Audio、全模态模型通义千问Omni;数学模型:通义千问数学模型;代码模型:通义千问Coder;翻译模型:通义千问翻译模型 |
文本生成 | 第三方模型 | DeepSeek、Llama、百川、ChatGLM、零一万物等。 |
图像生成 | 通义万相 | 通义千问大语言模型:商业版(通义千问-Max、通义千问-Plus、通义千问-Turbo)、开源版(QwQ、Qwen2.5、Qwen2、Qwen1.5、Qwen)、超长文档模型Qwen-Long;多模态模型:视觉理解模型通义千问VL、音频理解模型通义千问Audio、全模态模型通义千问Omni;数学模型:通义千问数学模型;代码模型:通义千问Coder;翻译模型:通义千问翻译模型 可生成图像或编辑图像,适用于生成证件照、电商主图、模特图、各种风格人像图(动漫、国风、二次元等),也可用于抠图、生成背景、更改图片元素等。 |
图像生成 | 第三方模型 | Stable Diffusion和FLUX。 |
语音合成与识别 | 语音合成 | CosyVoice和Sambert可实现文本转语音,适用于智能语音客服、有声读物、车载导航、教育辅导等场景。 |
语音合成与识别 | 语音识别 | Paraformer 和 SenseVoice 可实现语音转文本,适用于实时会议记录、实时直播字幕、电话客服等场景。 |
视频编辑与生成 | 其他 | (1)舞蹈视频:舞动人像AnimateAnyone基于人物图片和动作视频生成舞蹈视频。(2)对口型视频:悦动人像EMO基于人物图片和音频,适合唱演场景。灵动人像LivePortrait基于人物图片和音频,适合语音播报场景。声动人像VideoRetalk基于人物视频和音频,适合短视频制作、视频翻译等场景。(3)风格替换:幻影人像Motionshop将视频中的人物形象替换为3D角色。视频风格重绘可将视频转换为日式漫画、美式漫画等风格。 |
向量 | 文本向量 | CosyVoice和Sambert可实现文本转语音,适用于智能语音客服、有声读物、车载导航、教育辅导等场景。 |
向量 | 多模态向量 | Paraformer 和 SenseVoice 可实现语音转文本,适用于实时会议记录、实时直播字幕、电话客服等场景。 |
行业 | 通义法睿 | 适用于法律咨询、案例分析和法规解读等。 |
行业 | 意图理解 | 意图理解模型能够在毫秒级时间内解析用户意图,并选择合适工具来解决用户问题。 |
四、为什么选择百炼?
- 丰富的模型选择:百炼提供通义千问商业版的官方API接口,同时支持主流第三方大模型,涵盖文本、图像、音视频等模态,并提供行业定制化模型。
- 便捷的开发工具:百炼提供的Prompt自动优化、知识库管理、函数调用、流程编排、模型定制等能力,能帮助您更快地构建一个生产级别的大模型应用。
- 更低的使用成本:相比本地部署大模型,您无需在前期投入巨额成本来购置硬件,后期也无需考虑硬件的维护和折旧。只需按实际用量付费,可显著降低成本。
- 严格的数据保护:阿里云严格保护数据隐私,绝不会将您的数据用于模型训练。同时,您在构建应用或训练大模型过程中传输的数据都会经过加密,确保数据安全。
五、开始使用百炼
-
在线体验大模型:模型体验
-
发起第一个API请求:首次调用通义千问API
-
构建第一个大模型应用:0代码构建私有知识问答应用
Part two
一、开发参考
# 安装或更新DashScope SDK
pip install dashscope -i https://pypi.tuna.tsinghua.edu.cn/simple
二、模型调用
(一)通义千问API参考
金融云:使用 SDK 调用时需配置的 base_url:
https://dashscope-finance.aliyuncs.com/compatible-mode/v1
公有云:使用SDK调用时需配置的base_url:
https://dashscope.aliyuncs.com/compatible-mode/v1
1.文本输入
import os
from openai import OpenAI
client = OpenAI(
# 若没有配置环境变量,请用百炼API Key将下行替换为:api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen-plus", # 此处以qwen-plus为例,可按需更换模型名称。模型列表:https://help.aliyun.com/zh/model-studio/getting-started/models
messages=[
{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': '你是谁?'}],
)
print(completion.model_dump_json())
2.流式输出
import os
from openai import OpenAI
client = OpenAI(
# 若没有配置环境变量,请用百炼API Key将下行替换为:api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen-plus", # 此处以qwen-plus为例,可按需更换模型名称。模型列表:https://help.aliyun.com/zh/model-studio/getting-started/models
messages=[{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': '你是谁?'}],
stream=True,
stream_options={"include_usage": True}
)
for chunk in completion:
print(chunk.model_dump_json())
3.图像输入
import os
from openai import OpenAI
client = OpenAI(
# 若没有配置环境变量,请用百炼API Key将下行替换为:api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen-vl-plus", # 此处以qwen-vl-plus为例,可按需更换模型名称。模型列表:https://help.aliyun.com/zh/model-studio/getting-started/models
messages=[{"role": "user","content": [
{"type": "text","text": "这是什么"},
{"type": "image_url",
"image_url": {"url": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"}}
]}]
)
print(completion.model_dump_json())
4.视频输入
import os
from openai import OpenAI
client = OpenAI(
# 若没有配置环境变量,请用百炼API Key将下行替换为:api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
# 此处以qwen-vl-max-latest为例,可按需更换模型名称。模型列表:https://help.aliyun.com/zh/model-studio/getting-started/models
model="qwen-vl-max-latest",
messages=[{
"role": "user",
"content": [
{
"type": "video",
"video": [
"https://img.alicdn.com/imgextra/i3/O1CN01K3SgGo1eqmlUgeE9b_!!6000000003923-0-tps-3840-2160.jpg",
"https://img.alicdn.com/imgextra/i4/O1CN01BjZvwg1Y23CF5qIRB_!!6000000003000-0-tps-3840-2160.jpg",
"https://img.alicdn.com/imgextra/i4/O1CN01Ib0clU27vTgBdbVLQ_!!6000000007859-0-tps-3840-2160.jpg",
"https://img.alicdn.com/imgextra/i1/O1CN01aygPLW1s3EXCdSN4X_!!6000000005710-0-tps-3840-2160.jpg"]
},
{
"type": "text",
"text": "描述这个视频的具体过程"
}]}]
)
print(completion.model_dump_json())
5.工具调用
import os
from openai import OpenAI
client = OpenAI(
# 若没有配置环境变量,请用百炼API Key将下行替换为:api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1", # 填写DashScope SDK的base_url
)
tools = [
# 工具1 获取当前时刻的时间
{
"type": "function",
"function": {
"name": "get_current_time",
"description": "当你想知道现在的时间时非常有用。",
"parameters": {} # 因为获取当前时间无需输入参数,因此parameters为空字典
}
},
# 工具2 获取指定城市的天气
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "当你想查询指定城市的天气时非常有用。",
"parameters": {
"type": "object",
"properties": {
# 查询天气时需要提供位置,因此参数设置为location
"location": {
"type": "string",
"description": "城市或县区,比如北京市、杭州市、余杭区等。"
}
},
"required": ["location"]
}
}
}
]
messages = [{"role": "user", "content": "杭州天气怎么样"}]
completion = client.chat.completions.create(
model="qwen-plus", # 此处以qwen-plus为例,可按需更换模型名称。模型列表:https://help.aliyun.com/zh/model-studio/getting-started/models
messages=messages,
tools=tools
)
print(completion.model_dump_json())
6.联网搜索
import os
from openai import OpenAI
client = OpenAI(
# 若没有配置环境变量,请用百炼API Key将下行替换为:api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1", # 填写DashScope服务的base_url
)
completion = client.chat.completions.create(
model="qwen-plus", # 此处以qwen-plus为例,可按需更换模型名称。模型列表:https://help.aliyun.com/zh/model-studio/getting-started/models
messages=[
{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': '中国队在巴黎奥运会获得了多少枚金牌'}],
extra_body={
"enable_search": True
}
)
print(completion.model_dump_json())
7.异步调用
import os
import asyncio
from openai import AsyncOpenAI
import platform
client = AsyncOpenAI(
# 若没有配置环境变量,请用百炼API Key将下行替换为:api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
async def main():
response = await client.chat.completions.create(
messages=[{"role": "user", "content": "你是谁"}],
model="qwen-plus", # 此处以qwen-plus为例,可按需更换模型名称。模型列表:https://help.aliyun.com/zh/model-studio/getting-started/models
)
print(response.model_dump_json())
if platform.system() == "Windows":
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
asyncio.run(main())
8.文档理解
import os
from pathlib import Path
from openai import OpenAI
client = OpenAI(
# 若没有配置环境变量,请用百炼API Key将下行替换为:api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
file_object = client.files.create(file=Path("百炼系列手机产品介绍.docx"), purpose="file-extract")
completion = client.chat.completions.create(
model="qwen-long", # 模型列表:https://help.aliyun.com/zh/model-studio/getting-started/models
messages=[
{'role': 'system', 'content': f'fileid://{file_object.id}'},
{'role': 'user', 'content': '这篇文章讲了什么?'}
]
)
print(completion.model_dump_json())
9.文字提取
# pip install -U openai
import os
from openai import OpenAI
client = OpenAI(
# 若没有配置环境变量,请用百炼API Key将下行替换为:api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen-vl-ocr", # 模型列表:https://help.aliyun.com/zh/model-studio/getting-started/models
messages=[
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/ctdzex/biaozhun.jpg",
"min_pixels": 28 * 28 * 4,
"max_pixels": 1280 * 784
},
# 目前为保证识别效果,模型内部会统一使用"Read all the text in the image."作为text的值,用户输入的文本不会生效。
{"type": "text", "text": "Read all the text in the image."},
]
}
])
print(completion.model_dump_json())