写点什么

AISuite:一个新的开源 Python 库,提供了统一的跨 LLM API

作者 | Sergio De Simone

  • 2024-12-26
    北京
  • 本文字数:1311 字

    阅读完需:约 4 分钟

AISuite:一个新的开源Python库,提供了统一的跨LLM API

吴恩达(Andrew Ng)最近宣布, aisuite 的目标是围绕目前最流行的大语言模型(LLM)提供一个类似 OpenAI 的 API,使开发人员可以轻松地尝试并比较结果,或者在不更改代码的情况下从一个 LLM 切换到另一个 LLM。


根据吴恩达的说法,在同一个应用程序中使用多个 LLM 提供程序可能会很麻烦,而 aisuite 的目标是对其进行简化,只需在实例化其主组件时更改单个字符串即可选择所需的 LLM 提供程序。例如,要使用 OpenAI GPT-4o,你需要将“openai:gpt-4o”作为 model 参数传递到调用中,以创建一个 aisuite 聊天完成智能体代理。下面的代码片段进一步展示了这一点:


import aisuite as aiclient = ai.Client()

messages = [ {"role": "system", "content": "Respond in Pirate English."}, {"role": "user", "content": "Tell me a joke."},]

response = client.chat.completions.create( model="openai:gpt-4o", messages=messages, temperature=0.75)print(response.choices[0].message.content)

response = client.chat.completions.create( model="anthropic:claude-3-5-sonnet-20240620", messages=messages, temperature=0.75)print(response.choices[0].message.content)
复制代码


要安装 aisuite ,只需运行 pip install aisuite 。该库还提供了安装 LLM 提供程序库的快捷方式。例如,你可以运行 pip install 'aisuite[anthropic]' 来安装基础库和 Anthropic 支持。


几位 X 用户回复了吴恩达的公告,他们也表达了同样的感受,即 aisuite 确实解决了部署 LLM 时的实际痛点。Reddit 用户将 aisuite 等代理库的可用性与数据库的抽象层进行了类比,这些抽象层能够从测试中的 sqlite 切换到生产中的另一个数据库。


虽然总体反响普遍积极,但一些 X 和 Reddit 用户强调了 aisuite 的一些局限性,包括它尚不支持流媒体,也不支持速率限制、token 令牌使用监控等其他细节。同样,目前还不清楚 aisuite 对使用自定义云部署的 LLM 的支持程度如何。无论如何,值得记住的是,该库仍处于起步阶段,正在积极的开发中。


aisuite 并不是目前唯一可用于解决 LLM 交叉兼容性问题的解决方案。具体来说,LiteLLM 似乎是一种更成熟、功能更齐全的解决方案,可以使用相同的类似 OpenAI 的 API 调用多个 LLM,包括支持按项目逐个限制费率和预算。同样值得一提的是 OpenRouter,它还进一步提供了自己的基于 Web 的 UI。


aisuite 目前支持 OpenAI、Anthropic、Azure、Google、AWS、Groq、Mistral、HuggingFace 和 Ollama。该库是用 Python 编写的,要求开发人员拥有他们想要使用的任何 LLM 提供商的 API 密钥。该库使用每个 LLM 提供商发布的 API 或 SDK 来最大限度地提高稳定性。目前,它主要专注于聊天完成,但其维护人员表示,未来会涵盖新的用例。

作者介绍


Sergio De Simone 是一名软件工程师,已经拥有超过 25 年的工作经验了。他曾供职各种不同的项目和公司,包括西门子、惠普和小型初创公司等不同的工作环境。在过去的十多年里,他一直专注于移动平台和相关技术的开发。他目前在就职于 BigML, Inc.,负责 iOS 和 macOS 的开发。


查看原文链接:

https://www.infoq.com/news/2024/12/aisuite-cross-llm-api/

2024-12-26 10:009740

评论

发布
暂无评论

重置 Grafana admin 密码

耳东@Erdong

Grafana Grafana password

架构师训练营第七周学习总结

fenix

极客大学架构师训练营

性能压测的时候,随着并发压力的增加,系统响应时间和吞吐量如何变化,为什么?

一叶知秋

K8S 中的 Grafana 数据持久化

耳东@Erdong

Kubernetes k8s Grafana 配置文件持久化

过早三件套之面窝

zhoo299

美食

elasticsearch 游标 使用

wkq2786130

elasticsearch

neo4j load csv 使用

wkq2786130

架构师训练营Week7学习总结

Frank Zeng

架构师0期07周作业

我在终点等你

如何找一碗正宗的热干面

zhoo299

美食

antd vue 使用upload组件action上传文件

Seven_xw1213

大前端 antd vue upload

八个排序的原理、Java 实现以及算法分析

多选参数

数据结构 算法 排序 排序算法 数据结构与算法

Scrapy爬虫入门

烫烫烫个喵啊

python 爬虫

性能优化(一)

olderwei

antd vue upload组件使用customRequest上传文件显示文件上传进度

Seven_xw1213

大前端 antd vue upload customRequest 进度条

第七周命题作业

天之彼方

架构师训练营第7周

大丁💸💵💴💶🚀🐟

LeetCode题解:283. 移动零,JavaScript,一次遍历,详细注释

Lee Chen

大前端 LeetCode

解决 EXT4 使用无法挂载

耳东@Erdong

ext4 journal

话说性能那些事

朱月俊

优秀的求职者,是如何巧妙应对面试提问呢?

xcbeyond

面试 加班 职业规划 薪资 自我介绍

随着并发的增加,响应时间和吞吐的变化

朱月俊

第7周总结+作业

林毋梦

架构师训练营第7周

大丁💸💵💴💶🚀🐟

问题驱动

学习 问题驱动

米酒米酒黼子酒

zhoo299

美食

第 7 周 - 作业 2

seng man

MySQL 锁表后快速解决方法 及 锁表原因

wkq2786130

MySQL

Neo4j APOC 使用

wkq2786130

neo4j apoc

第七周总结

天之彼方

Github 创建发行版本

耳东@Erdong

GitHub github release

AISuite:一个新的开源Python库,提供了统一的跨LLM API_编程语言_InfoQ精选文章