首页 抖音快讯文章正文

仅用统一API接口即可调用全部大语言模型的sdk(开源代理网关)

抖音快讯 2025年02月16日 06:15 6 admin

今天介绍一款开源的OpenAI代理服务器(LLM 网关)-- LiteLLM

https://github.com/BerriAI/litellm (github 15K Star)

用途:

LiteLLM可以在统一的界面中调用 100 多个大语言模型(LLM),并且可以跟踪每个大模型的Tocken使用情况,为每个虚拟密钥/用户设置预算等。

这样仅需使用统一的Python SDK(gateway)即可调用任意大模型了,不必再去单独适配每个模型并不相同的的API接口,适合进行由代码能力的Developer们进行二次开发!

仅用统一API接口即可调用全部大语言模型的sdk(开源代理网关)

好,接下来跟随我在本地环境搭建起来,看看这个OpenAI的代理网关究竟如何~

本地搭建

演示环境需求:

  • docker环境
  • ollama本地模型

LiteLLM还是以Docker方式部署

首先下载如下镜像:

仅用统一API接口即可调用全部大语言模型的sdk(开源代理网关)

docker-compose配置:

$ cat docker-compose.ymlservices:  litellm:    image: ghcr.io/berriai/litellm:main-stable    volumes:      - ./config.yaml:/app/config.yaml    command:      - "--config=/app/config.yaml"    ports:      - "4000:4000"     environment:        LITELLM_MASTER_KEY: "sk-1234" #        LITELLM_SALT_KEY: "sk-XXXXXXXX"        DATABASE_URL: "postgresql://llmproxy:dbpassword9090@litellmdb:5432/litellm"        STORE_MODEL_IN_DB: "True"    env_file:      - .env # Load local .env file  litellmdb:    image: postgres:12.22    restart: always    environment:      POSTGRES_DB: litellm      POSTGRES_USER: llmproxy      POSTGRES_PASSWORD: dbpassword9090    healthcheck:      test: ["CMD-SHELL", "pg_isready -d litellm -U llmproxy"]      interval: 1s      timeout: 5s      retries: 10

配置文件:config.yaml

$ cat config.yamlmodel_list:  - model_name: gemma2:9b    litellm_params:      model: ollama/gemma2:9b      api_base: http://Host.docker.internal:11434  - model_name: qwen:14b    litellm_params:      model: ollama/qwen:14b      api_base: http://Host.docker.internal:11434  - model_name: codellama:13b    litellm_params:      model: ollama/codellama:13b      api_base: http://Host.docker.internal:11434

这里写了我本地现有ollama的模型(选了三个),注意 Host.docker.internal 的用法

仅用统一API接口即可调用全部大语言模型的sdk(开源代理网关)

启动服务:

docker compose up -d
仅用统一API接口即可调用全部大语言模型的sdk(开源代理网关)

浏览器访问:

http://localhost:4000/

仅用统一API接口即可调用全部大语言模型的sdk(开源代理网关)

目前已经可以看到API接口情况,神似Swagger。

查看容器里面的日志及访问情况:

仅用统一API接口即可调用全部大语言模型的sdk(开源代理网关)

可以登陆管理员控制台UI:

仅用统一API接口即可调用全部大语言模型的sdk(开源代理网关)

输入之前指定的 LITELLM_MASTER_KEY:

仅用统一API接口即可调用全部大语言模型的sdk(开源代理网关)

LiteLLM查询当前模型情况:

仅用统一API接口即可调用全部大语言模型的sdk(开源代理网关)

当前模型已经可以列出:

仅用统一API接口即可调用全部大语言模型的sdk(开源代理网关)

仅用统一API接口即可调用全部大语言模型的sdk(开源代理网关)

LiteLLM 可支持的模型列表(100+)

https://models.litellm.ai/

仅用统一API接口即可调用全部大语言模型的sdk(开源代理网关)

LiteLLM支持超多平台和机构的大模型,下面是支持的平台的简单介绍:

  • Bedrock:Amazon Bedrock-生成式人工智能应用新服务。
  • Azure:微软的云服务。
  • OpenAI:著名的开源人工智能研究机构。
  • VertexAI:Google的云端机器学习平台。
  • Cohere、Anthropic:专注于人工智能和自然语言处理的公司。
  • Sagemaker:亚马逊AWS提供的机器学习开发工具包。
  • HuggingFace:提供高质量预训练模型的库,主要用于NLP任务。
  • Replicate、Groq:关于数据复制或高级搜索技术的相关平台。

既然本地环境都搭建好了,好歹使用LiteLLM工具聊上几句吧,可惜现在大语言都聪明了,不好骗了~

仅用统一API接口即可调用全部大语言模型的sdk(开源代理网关)

注意:

LiteLLM 是关于OpenAI的代理服务器,主要是方便开发者使用Python语言进行api调用,并不是专门为了在UI页面进行聊天的工具,从UI方便及美观程度比起LobeChat要相差很远。

我们可以看看我本地使用LobeChat针对同样问题的聊天,比LiteLLM可是强多了哈,至少好看,还有session及上下文跟随。

仅用统一API接口即可调用全部大语言模型的sdk(开源代理网关)

接下来看看使用Python API调用方式

pip install litellm

基本调用情况

from litellm import completionimport os## set ENV variablesos.environ["OPENAI_API_KEY"] = "your-openai-key"os.environ["ANTHROPIC_API_KEY"] = "your-cohere-key"messages = [{ "content": "哈喽啊,吃了没?","role": "user"}]# openai callresponse = completion(model="openai/gpt-4o", messages=messages)# ollama callresponse = completion(model="ollama/gemma2:9b", messages=messages)print(response)

LiteLLM 还支持流式(streaming)响应,使用stream=True,如:

from litellm import completionresponse = completion(model="openai/gpt-4o", messages=messages, stream=True)for part in response:    print(part.choices[0].delta.content or "")# claude 2response = completion('ollama/gemma2:9b', messages, stream=True)for part in response:    print(part)

LiteLLM更多的文档可以参考:

https://docs.litellm.ai/docs/

感觉怎么样?LiteLLM是一款OpenAI接口模式的统一代理网关,基于Python,适合进行二次开发与包装,简化多模型适配的繁琐和重复工作,有类似需求的同学值得一试!

正巧今天是小寒,借之前大模型的诗意大发,吟诗一首,祝各位小寒节日快乐!

小 寒

by:通义千问:14b

小寒时节透冰心,

银装素裹月沉吟。

炉火温酒驱风冷,

诗酒年华笑对冬。

(全文完)

发表评论

泰日号Copyright Your WebSite.Some Rights Reserved. 网站地图 备案号:川ICP备66666666号 Z-BlogPHP强力驱动