带善人HuggingFace搞了点新接口
很久没去 HuggingFace,发现又多了一些第三方 LLM 接口,并且特地做了一个支持直接调用的 LLM 列表。可以看到,最全的依然是 novita,其他基本是凑数的。
不过,最大的发现是,图片生成增加了一家供应商:WaveSpeed。相比不能试用的 fal 和审核很严的 Replicate,WaveSpeed 可以说是可用性极高。
配合以前的一个小技巧——HuggingFace 实际支持第三方接口的所有模型(包括不在 HuggingFace 上的闭源模型),我们还可以 router 调用 Nano-Banana。
还不止于此,只要接口统一,其他任何模型,甚至是音乐生成模型,也能调用。
# pip install wavespeed
from wavespeed import Client
hf_key = YOUR_HF_KEY
hf_base_url = "https://router.huggingface.co/wavespeed"
def text_to_music(prompt, lyrics, model):
client = Client(api_key=hf_key, base_url=hf_base_url)
output = client.run(
model,
{
"bitrate": 256000,
"lyrics": lyrics,
"prompt": prompt,
"sample_rate": 44100
},
timeout=36000.0,
poll_interval=1.0,
enable_sync_mode=False,
)
return output["outputs"][0]
model = "minimax/music-02"
prompt = "一首中式古典歌曲,由古筝弹奏,由轻柔的男声演唱"
lyrics = "窗前明月光,\n疑似地上霜。\n举头望明月,\n低头思故乡。"
print(text_to_music(prompt, lyrics, model))
可以说,HuggingFace 的 router 就是真是个 router。实践中,并不是所有的供应商都能随意跨模型,例如:不能用 replicate 的 LLM;调 novita 非 LLM 服务结果会截断。这不是因为 HuggingFace 做了限制,而是 router 这块代码够烂。可能这块是 vibe coding出来的?