無縫切換,實現多廠家大模型高效對接
1、問題介紹
在 AI 技術迅猛發展的今天,越來越多的研發同學面臨著眾多大模型選型的挑戰。隨著業務需求的多樣化,大家希望能夠逐一對比和探索不同的大模型,以便選擇最適合的解決方案。然而,不同模型的對接方式各異,請求格式、參數解析也各不相同,這給開發者帶來了不小的困擾。
2、解決方案
由于 OpenAI 的優先存在,即后續大模型都會考慮 OpenAI 兼容方案,通過統一的接口設計,屏蔽了底層模型的差異,使開發者能夠無縫切換和對接不同的大模型。
無論是 OpenAI、Anthropic 還是 Cohere,只需簡單配置,即可快速接入,大幅降低了開發和維護成本。
借助這一方案,研發同學可以更專注于業務邏輯的實現,而無需為不同模型的適配問題頭疼,助你在 AI 的浪潮中游刃有余。
3、示例展示
多說無益,直接上手展示吧~
前期準備:
1)大模型APIKey -- 自行申請
2)服務endpoint -- 翻閱各家大模型對接文檔
3.1 對接騰訊混元大模型
import os
from openai import OpenAI
model = "hunyuan-turbo"
# 構造 client
client = OpenAI(
api_key=os.environ.get("HUNYUAN_API_KEY"), # 混元 APIKey
base_url="https://api.hunyuan.cloud.tencent.com/v1", # 混元 endpoint
)
# 自定義參數傳參示例
completion = client.chat.completions.create(
model=model,
messages=[
{
"role": "user",
"content": "你好",
},
]
)
print(model, completion.choices[0].message.content)
執行輸出:
圖片
3.2 對接阿里千問大模型
import os
from openai import OpenAI
model = "qwen-plus"
# 構造 client
client = OpenAI(
api_key=os.environ.get("QIANWEN_API_KEY"), # 千問 APIKey
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1", # 千問 endpoint
)
# 自定義參數傳參示例
completion = client.chat.completions.create(
model=model,
messages=[
{
"role": "user",
"content": "你好",
},
],
)
print(model, completion.choices[0].message.content)
執行輸出:
圖片
4、其他問題
當然,相信有人還有疑問:我如果想使用流式方式輸出呢?
事實上,OpenAI 已經為我們提供了現成的參考實現,只需稍作調整即可輕松集成到你的項目中。