Project Icon

pyllms

多模型连接和性能评估的Python语言模型库

PyLLMs是一个用于连接多种语言模型的Python库。它提供标准化响应元数据、多模型同时调用和性能基准测试功能。该库支持异步和流式处理,并可通过简单代码实现LLM连接。PyLLMs适用于自然语言处理和AI应用开发,为开发者提供了便捷的语言模型访问方式。

PyLLMs

PyPI版本 许可证:MIT Twitter

PyLLMs是一个极简的Python库,用于连接各种语言模型(LLMs),并内置模型性能基准测试。

目录

功能特点

  • 几行代码即可连接顶级LLMs
  • 响应元数据包括处理的令牌数、成本和延迟,在各模型间标准化
  • 多模型支持:同时从不同模型获取补全
  • LLM基准测试:评估模型的质量、速度和成本
  • 对兼容模型提供异步和流式支持

安装

使用pip安装包:

pip install pyllms

快速开始

import llms

model = llms.init('gpt-4o')
result = model.complete("5+5等于多少?")

print(result.text)

使用方法

基本用法

import llms

model = llms.init('gpt-4o')
result = model.complete(
    "莫扎特出生的国家的首都是什么?",
    temperature=0.1,
    max_tokens=200
)

print(result.text)
print(result.meta)

多模型使用

models = llms.init(model=['gpt-3.5-turbo', 'claude-instant-v1'])
result = models.complete('莫扎特出生的国家的首都是什么?')

print(result.text)
print(result.meta)

异步支持

result = await model.acomplete("莫扎特出生的国家的首都是什么?")

流式支持

model = llms.init('claude-v1')
result = model.complete_stream("写一篇关于内战的文章")
for chunk in result.stream:
   if chunk is not None:
      print(chunk, end='')

聊天历史和系统消息

history = []
history.append({"role": "user", "content": user_input})
history.append({"role": "assistant", "content": result.text})

model.complete(prompt=prompt, history=history)

# 对于OpenAI聊天模型
model.complete(prompt=prompt, system_message=system, history=history)

其他方法

count = model.count_tokens('敏捷的棕色狐狸跳过了懒惰的狗')

配置

PyLLMs将尝试从环境变量中读取API密钥和默认模型。您可以这样设置它们:

export OPENAI_API_KEY="你的api密钥"
export ANTHROPIC_API_KEY="你的api密钥"
export AI21_API_KEY="你的api密钥"
export COHERE_API_KEY="你的api密钥"
export ALEPHALPHA_API_KEY="你的api密钥"
export HUGGINFACEHUB_API_KEY="你的api密钥"
export GOOGLE_API_KEY="你的api密钥"
export MISTRAL_API_KEY="你的api密钥"
export REKA_API_KEY="你的api密钥"
export TOGETHER_API_KEY="你的api密钥"
export GROQ_API_KEY="你的api密钥"
export DEEPSEEK_API_KEY="你的api密钥"

export LLMS_DEFAULT_MODEL="gpt-3.5-turbo"

或者,您可以将初始化值传递给init()方法:

model = llms.init(openai_api_key='你的api密钥', model='gpt-4')

模型基准测试

PyLLMs包含一个自动化基准测试系统。模型质量使用强大的模型(如GPT-4)在一系列预定义问题上进行评估,或者您可以提供自己的问题。

model = llms.init(model=['claude-3-haiku-20240307', 'gpt-4o-mini', 'claude-3-5-sonnet-20240620', 'gpt-4o', 'mistral-large-latest', 'open-mistral-nemo', 'gpt-4', 'gpt-3.5-turbo', 'deepseek-coder', 'deepseek-chat', 'llama-3.1-8b-instant', 'llama-3.1-70b-versatile'])

gpt4 = llms.init('gpt-4o')

models.benchmark(evaluator=gpt4)

查看 Kagi LLM 基准测试项目 获取最新的基准测试结果!

要对自己的提示进行模型评估:

models.benchmark(prompts=[("芬兰的首都是什么?", "赫尔辛基")], evaluator=gpt4)

支持的模型

获取完整的支持模型列表:

model = llms.init()
model.list()
model.list("gpt")  # 仅列出名称/提供者名称中包含 'gpt' 的模型

当前支持的模型(可能已过时):

提供者模型
HuggingfaceHubProviderhf_pythia, hf_falcon40b, hf_falcon7b, hf_mptinstruct, hf_mptchat, hf_llava, hf_dolly, hf_vicuna
GroqProviderllama-3.1-8b-instant, llama-3.1-405b-reasoning, llama-3.1-70b-versatile
DeepSeekProviderdeepseek-chat, deepseek-coder
MistralProvidermistral-tiny, open-mistral-7b, open-mistral-nemo, mistral-small, open-mixtral-8x7b, mistral-small-latest, mistral-medium-latest, mistral-large-latest
OpenAIProvidergpt-4o-mini, gpt-3.5-turbo, gpt-3.5-turbo-1106, gpt-3.5-turbo-instruct, gpt-4o, gpt-4-1106-preview, gpt-4-turbo-preview, gpt-4-turbo
GoogleProvidergemini-1.5-pro-preview-0514, gemini-1.5-flash-preview-0514, chat-bison, text-bison, text-bison-32k, code-bison, code-bison-32k, codechat-bison, codechat-bison-32k, gemini-pro
GoogleGenAIProviderchat-bison-genai, text-bison-genai, gemini-1.5-pro-latest
AnthropicProviderclaude-3-haiku-20240307, claude-instant-v1.1, claude-instant-v1, claude-instant-1, claude-instant-1.2, claude-3-sonnet-20240229, claude-3-5-sonnet-20240620, claude-2.1, claude-v1, claude-v1-100k, claude-3-opus-20240229
BedrockAnthropicProvideranthropic.claude-3-haiku-20240307-v1:0, anthropic.claude-instant-v1, anthropic.claude-v1, anthropic.claude-v2, anthropic.claude-3-sonnet-20240229-v1:0
TogetherProvidermeta-llama/Meta-Llama-3.1-405B-Instruct-Turbo
RekaProviderreka-edge, reka-flash, reka-core
AlephAlphaProviderluminous-base, luminous-extended, luminous-supreme, luminous-supreme-control
AI21Providerj2-grande-instruct, j2-jumbo-instruct, command, command-nightly
CohereProvidercommand, command-nightly

高级用法

在 Azure 上使用 OpenAI API

import llms
AZURE_API_BASE = "{在此插入}"
AZURE_API_KEY = "{在此插入}"

model = llms.init('gpt-4')

azure_args = {
    "engine": "gpt-4",  # Azure 部署 ID
    "api_base": AZURE_API_BASE,
    "api_type": "azure",
    "api_version": "2023-05-15",
    "api_key": AZURE_API_KEY,
}

azure_result = model.complete("5+5等于多少?", **azure_args)

使用 Google Vertex LLM 模型

  1. 设置 GCP 账户并创建项目
  2. 在 GCP 项目中启用 Vertex AI APIs
  3. 安装 gcloud CLI 工具
  4. 设置应用默认凭证

然后:

model = llms.init('chat-bison')
result = model.complete("你好!")

使用本地 Ollama LLM 模型

  1. 确保 Ollama 正在运行,并且你已经拉取了所需的模型
  2. 获取你想使用的 LLM 的名称
  3. 初始化 PyLLMs:
model = llms.init("tinyllama:latest")
result = model.complete("你好!")

贡献

欢迎贡献!请随时提交拉取请求。

许可证

本项目采用 MIT 许可证。详情请参见 LICENSE 文件。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号