告别复杂API:any-llm让20+LLM平台集成变得如此简单

【免费下载链接】any-llm Communicate with an LLM provider using a single interface 【免费下载链接】any-llm 项目地址: https://gitcode.com/gh_mirrors/any/any-llm

在人工智能快速发展的今天,开发者常常需要集成多个大型语言模型(LLM)平台,以满足不同的业务需求。然而,每个平台都有其独特的API接口和调用方式,这不仅增加了开发复杂度,还导致代码冗余和维护困难。any-llm作为一款强大的LLM集成工具,通过提供统一接口,让20+LLM平台的集成变得前所未有的简单。

为什么选择any-llm?

开发人员在集成多个LLM平台时,常常面临以下挑战:

  • 不同平台API接口差异大,需要编写大量适配代码
  • 认证方式各不相同,密钥管理复杂
  • 响应格式不统一,数据处理繁琐
  • 切换平台时需要修改大量代码

any-llm的出现正是为了解决这些问题。它提供了一个抽象层,将各种LLM平台的差异隐藏在统一接口之后,让开发者可以专注于业务逻辑,而不是平台细节。

any-llm的核心优势

统一接口,一次集成多种LLM

any-llm最核心的优势在于其统一的API接口。无论你使用的是OpenAI、Anthropic、Gemini还是其他LLM平台,都可以通过相同的方式进行调用。

from any_llm import AnyLLM

# 初始化LLM客户端
llm = AnyLLM(provider="openai", api_key="your-api-key")

# 发送请求
response = llm.completion(
    model="gpt-4",
    messages=[{"role": "user", "content": "Hello, world!"}]
)

只需简单修改provider参数,就可以无缝切换到其他LLM平台,无需大规模修改代码。

支持20+主流LLM平台

any-llm支持目前市场上几乎所有主流的LLM平台,包括但不限于:

any-llm模型查找器界面

  • OpenAI (GPT系列模型)
  • Anthropic (Claude系列模型)
  • Google Gemini
  • Mistral
  • Ollama
  • HuggingFace
  • Azure OpenAI
  • AWS Bedrock
  • Cohere
  • 以及更多...

完整的支持列表可以在项目的src/any_llm/providers/目录中查看。

灵活的架构设计

any-llm采用了灵活的架构设计,使其能够轻松扩展以支持新的LLM平台。核心组件包括:

any-llm网关架构图

  • 统一API层:提供一致的接口给开发者
  • 认证管理层:处理不同平台的认证方式
  • 请求路由层:将请求分发到相应的LLM平台
  • 响应转换层:将不同平台的响应标准化

这种架构不仅保证了接口的统一性,还提供了诸如预算管理、使用跟踪等额外功能。

快速开始使用any-llm

安装any-llm

要开始使用any-llm,首先需要安装该库。可以通过pip命令轻松安装:

pip install any-llm

基本使用示例

以下是一个简单的使用示例,展示如何通过any-llm调用不同的LLM平台:

from any_llm import AnyLLM, acompletion

# 使用OpenAI
openai_llm = AnyLLM(provider="openai", api_key="your-openai-key")
response = openai_llm.completion(
    model="gpt-3.5-turbo",
    messages=[{"role": "user", "content": "What is the capital of France?"}]
)
print(response.choices[0].message.content)

# 切换到Anthropic Claude
claude_llm = AnyLLM(provider="anthropic", api_key="your-anthropic-key")
response = claude_llm.completion(
    model="claude-3-sonnet-20240229",
    messages=[{"role": "user", "content": "What is the capital of France?"}]
)
print(response.choices[0].message.content)

异步调用支持

any-llm还提供了异步调用支持,非常适合在异步应用中使用:

import asyncio
from any_llm import AnyLLM, acompletion

async def main():
    llm = AnyLLM(provider="openai", api_key="your-api-key")
    response = await llm.acompletion(
        model="gpt-4",
        messages=[{"role": "user", "content": "Hello, world!"}]
    )
    print(response.choices[0].message.content)

asyncio.run(main())

高级功能

流式响应

any-llm支持流式响应,这对于需要实时展示结果的应用非常有用:

async def stream_example():
    llm = AnyLLM(provider="openai", api_key="your-api-key")
    stream = await llm.acompletion(
        model="gpt-4",
        messages=[{"role": "user", "content": "Tell me a story."}],
        stream=True
    )
    
    async for chunk in stream:
        if chunk.choices[0].delta.content:
            print(chunk.choices[0].delta.content, end="")

工具调用能力

any-llm还支持工具调用功能,可以让LLM根据需要调用外部工具:

tools = [
    {
        "type": "function",
        "function": {
            "name": "get_current_weather",
            "description": "Get the current weather in a given location",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {
                        "type": "string",
                        "description": "The city and state, e.g. San Francisco, CA"
                    }
                },
                "required": ["location"]
            }
        }
    }
]

response = llm.completion(
    model="gpt-4",
    messages=[{"role": "user", "content": "What's the weather like in London?"}],
    tools=tools,
    tool_choice="auto"
)

部署与扩展

本地部署

对于本地开发和小规模应用,可以直接使用any-llm库:

pip install any-llm

网关部署

对于生产环境,any-llm提供了网关服务,可以作为独立服务部署:

git clone https://gitcode.com/gh_mirrors/any/any-llm
cd any-llm
docker-compose up -d

详细的部署指南可以参考docs/gateway/docker-deployment.md

总结

any-llm通过提供统一的API接口,极大地简化了多LLM平台的集成工作。无论是开发原型还是构建生产系统,any-llm都能帮助开发者节省大量时间和精力,让他们能够更专注于创造真正的业务价值。

如果你正在寻找一种简单、高效的方式来集成多个LLM平台,那么any-llm绝对值得一试。它的灵活性和强大功能将为你的AI项目带来全新的可能。

想要了解更多关于any-llm的信息,可以查阅项目的官方文档docs/index.md,或者直接查看源代码src/any_llm/

【免费下载链接】any-llm Communicate with an LLM provider using a single interface 【免费下载链接】any-llm 项目地址: https://gitcode.com/gh_mirrors/any/any-llm

Logo

脑启社区是一个专注类脑智能领域的开发者社区。欢迎加入社区,共建类脑智能生态。社区为开发者提供了丰富的开源类脑工具软件、类脑算法模型及数据集、类脑知识库、类脑技术培训课程以及类脑应用案例等资源。

更多推荐