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