项目介绍:Generate
Generate 是一个用 Python 编写的软件包,它的设计初衷是让用户可以通过一个统一的 API 访问世界级的生成模型。该软件包为用户提供了访问不同平台的各种生成式人工智能模型的便利,让用户可以在不关注底层差异的情况下,灵活使用不同模型的功能。
简介
Generate 通过提供一个统一接口,让用户能够访问多个平台的生成模型。支持的平台包括 OpenAI、Azure、Anthropic、文心 Wenxin、灵积/百炼 DashScope 等。这些平台提供了多种多样的功能,包括文本生成、图像生成、语音生成等,且支持同步、异步和流式调用。
主要特性
- 多模态支持:不仅支持文本生成,还包括多模态文本生成、结构体生成、图像生成和语音生成。
- 跨平台兼容:支持超过 10 个国内外主流平台,如 OpenAI、Azure 和文心一言。
- 统一 API:消除不同平台之间的接口差异,用户可以使用统一格式进行调用。
- 多种调用方式:提供流式调用、非流式调用、同步调用、异步调用及批量并发调用。
- 多种附加功能:附带 chainlit UI、输入检查、参数检查、计费和速率控制等功能。
- 最小化依赖与高质量代码:依赖减少,所有的请求和鉴权逻辑内置,代码有着严格的类型提示与格式化。
基础使用指南
安装
用户可以通过以下命令进行安装:
pip install generate-core
查看模型列表
可以通过以下代码查看当前支持的模型列表:
from generate.chat_completion import ChatModelRegistry
print('\n'.join([model_cls.__name__ for model_cls, _ in ChatModelRegistry.values()]))
配置模型 API
用户可以通过特定的设置来配置某个模型的 API,比如配置文心一言模型:
from generate import WenxinChat
print(WenxinChat.how_to_settings())
文本生成
以下是使用 OpenAIChat 进行文本生成的示例:
from generate import OpenAIChat
model = OpenAIChat()
output = model.generate('你好,GPT!', temperature=0, seed=2023)
多模态文本生成
利用 OpenAIChat 进行多模态文本生成的示例:
from generate import OpenAIChat
model = OpenAIChat(model='gpt-4-vision-preview')
user_message = {
'role': 'user',
'content': [
{'text': '这个图片是哪里?'},
{'image_url': {'url': 'https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg'}},
],
}
output = model.generate(user_message, max_tokens=1000)
派生功能
Generate 还支持使用结构体、速率限制、对话历史保持及工具调用等高级功能:
- 结构体生成:让输出直接映射为特定的数据结构。
- 速率限制:帮助进行调用次数的限制和管理。
- 对话历史保持:实现上下文对话的记忆功能。
- 工具调用:通过自定义工具函数来增强生成的结果。
图像和语音生成
Generate 还可以生成图像和语音。以下是图像生成的示例:
from generate import OpenAIImageGeneration
model = OpenAIImageGeneration()
output = model.generate('black hole')
语音生成的示例如下:
from generate import MinimaxSpeech
model = MinimaxSpeech()
output = model.generate('你好,世界!')
启动 UI
用户可以通过以下命令启动 chainlit UI:
python -m generate.ui
Generate 项目以其统一的接口设计、丰富的功能和良好的可扩展性,使得用户能够方便地利用各种生成式模型,充分满足不同应用场景的需求。