阿里云百煉通義大模型
- 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 OpenAIclient = 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-keybase_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/modelsmessages=[{'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 OpenAIclient = 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/modelsmessages=[{'role': 'system', 'content': 'You are a helpful assistant.'},{'role': 'user', 'content': '你是誰?'}],)print(completion.model_dump_json())
2.流式輸出
import os
from openai import OpenAIclient = 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/modelsmessages=[{'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 OpenAIclient = 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/modelsmessages=[{"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 OpenAIclient = 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/modelsmodel="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 OpenAIclient = 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/modelsmessages=messages,tools=tools
)print(completion.model_dump_json())
6.聯網搜索
import os
from openai import OpenAIclient = 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/modelsmessages=[{'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 platformclient = 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 OpenAIclient = 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/modelsmessages=[{'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 OpenAIclient = 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/modelsmessages=[{"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())