Unify 项目简介
Unify 是一款旨在简化大型语言模型(LLM)使用体验的工具。
项目目标
Unify 的目标是通过统一接口简化 LLM 的使用过程。用户可以轻松地使用不同提供商的所有 LLM,而无需管理多个 API 及不同的输入输出格式。Unify 将这些步骤自动化,提供了极大的便利。
功能介绍
-
支持多种LLM:无论是哪家提供商的模型,用户只需修改一个字符串就可以切换,无需处理多个 API Key 或不同接口格式。
-
提升LLM性能:用户可以添加自定义测试和评估,基于质量、成本和速度的比较调优系统提示,直到通过所有测试用例后可以部署应用。
-
最佳模型路由:根据每个特定提示选择最合适的模型和提供商,以提升质量、降低成本并加快响应速度。
快速开始
用户可以通过简单的安装步骤快速开始使用 Unify:
pip install unifyai
然后通过注册获取 API Key,开始生成文本。
import unify
client = unify.Unify("gpt-4o@openai", api_key=<your_key>)
client.generate("hello world!")
注意,推荐使用 python-dotenv
在 .env
文件中存储 API Key,这可避免在代码中重复设置。
模型和提供商管理
用户可以列出所有可用的模型、提供商和接口组合,并根据需要筛选适用的模型。
models = unify.list_models()
providers = unify.list_providers()
endpoints = unify.list_endpoints()
还提供了灵活的方法更改使用的模型、提供商和接口。
client.set_endpoint("mistral-7b-instruct-v0.3@deepinfra")
client.set_model("mistral-7b-instruct-v0.3")
client.set_provider("deepinfra")
自定义提示
通过 system_message
参数,用户可以影响模型的响应风格。例如,可以指示模型以押韵的方式回复。
response = client.generate(
user_message="Hello Llama! Who was Isaac Newton?", system_message="You should always talk in rhymes"
)
异步使用
Unify 支持异步操作,能够同时处理多个请求,提高并发性能,适用于聊天机器人等应用场景。
import unify
import asyncio
async_client = unify.AsyncUnify("llama-3-8b-chat@fireworks-ai")
asyncio.run(async_client.generate("Hello Llama! Who was Isaac Newton?"))
流式响应
启用流式响应可以实时接收并处理模型的生成内容,提升交互体验。
import unify
client = unify.Unify("llama-3-8b-chat@fireworks-ai")
stream = client.generate("Hello Llama! Who was Isaac Newton?", stream=True)
for chunk in stream:
print(chunk, end="")
深入了解
Unify 提供了更高级的 API 功能、性能评估工具及模型路由功能,用户可通过详细文档获取更多信息。
Unify 项目力求通过一个简单便捷的接口,让用户尽情探索和利用 LLM 的能力,从中获取最大便利。