支持细粒度访问控制的 AI API 管理网关

大家好,又见面了,我是 GitHub 精选君!

背景介绍

我们通常会遇到调用 AI 网关的问题,例如你需要调用 OpenAI,Azure OpenAI 或者 Anthropic 进行特定的开发工作,但是这些 AI 服务提供商并没有提供细粒度的访问控制,这里的访问控制包括:访问的频率限制、花费限制以及会话的存在时间限制等。如果不加以控制,这可能会导致服务调用成本无法控制,甚至有数据安全风险。

今天要给大家推荐一个 GitHub 开源项目 BricksLLM,该项目在 GitHub 有差不多 1000 Star,一句话介绍该项目:Enterprise grade API infrastructure that helps you access control and mange spend across OpenAI, Azure OpenAI and Anthropic.

项目介绍

BricksLLM 是一个用 Go 语言编写的云原生 AI 网关。它支持 OpenAI、Anthropic 和 Azure OpenAI,并且,BricksLLM 提供创建 API 密钥的功能,这些密钥具有速率限制、成本限制和 TTL。这些 API 密钥可以同时用于开发和生产,以达到精细的访问控制。这个代理的设计目标是与现有 SDK 100% 兼容。

BricksLLM 的主要功能包括:速率限制、成本控制、成本分析、请求分析、Cache、请求重试、服务降级等。同时,它还对所有 OpenAI 端点、Anthropic 和 Azure OpenAI 提供了原生支持,并且允许集成自定义模型,支持 Datadog 集成,具有日志保护隐私控制功能。

如何使用

BricksLLM 安装和使用的最简单方法是通过 BricksLLM-Docker。首先克隆 BricksLLM-Docker 仓库,然后使用 docker compose up 启动即可。

之后是创建提供商设置和 Bricks API key。然后,你就可以像平常那样使用 OpenAI,将你的请求引向 BricksLLM.

这个过程涉及代码操作如下:

git clone https://github.com/bricks-cloud/BricksLLM-Docker
cd BricksLLM-Docker
docker-compose up
curl -X PUT http://localhost:8001/api/provider-settings \
   -H "Content-Type: application/json" \
   -d '{
          "provider":"openai",
          "setting": {
             "apikey": "YOUR_OPENAI_KEY"
          }
      }'   
curl -X PUT http://localhost:8001/api/key-management/keys \
   -H "Content-Type: application/json" \
   -d '{
	      "name": "My Secret Key",
	      "key": "my-secret-key",
	      "tags": ["mykey"],
        "settingIds": ["ID_FROM_STEP_FOUR"],
        "rateLimitOverTime": 2,
        "rateLimitUnit": "m",
        "costLimitInUsd": 0.25
      }' 
项目推介

BricksLLM 对于需要使用 AI 服务提供商如 OpenAI,Azure OpenAI 或者 Anthropic 的开发者来说是一个非常有用的工具。它弥补了这些 AI 服务提供商没有详细访问控制的缺陷,塑造了一个安全、可控的环境。以下是一些在使用用户的评价:

以下是该项目 Star 趋势图(代表项目的活跃程度):

更多项目详情请查看如下链接。

开源项目地址:https://github.com/bricks-cloud/BricksLLM

开源项目作者:bricks-cloud

开源协议:MIT License

以下是参与项目建设的所有成员:

关注我们,一起探索有意思的开源项目。


更多精彩请扫码关注如下公众号。

Written on February 6, 2024