https://github.com/1587causalai/stable-llm-service

稳定可靠的大模型调用中间层,支持多服务提供商策略和高并发控制

https://github.com/1587causalai/stable-llm-service

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (5.5%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

稳定可靠的大模型调用中间层,支持多服务提供商策略和高并发控制

Basic Info
  • Host: GitHub
  • Owner: 1587causalai
  • License: mit
  • Language: Python
  • Default Branch: main
  • Size: 21.5 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 1
  • Open Issues: 0
  • Releases: 0
Created over 1 year ago · Last pushed over 1 year ago
Metadata Files
Readme Contributing License

README.md

稳定大模型调用中间层

Python Package PyPI version License: MIT

这是一个完全独立的大模型调用中间层实现,专注于提供高稳定性和可靠性。它集成了多个LLM服务提供商(OpenAI、Anthropic和Google Gemini),并通过多种策略确保API调用在高并发和限流场景下的可靠性。

本项目是一个轻量级、自包含的解决方案,不依赖于任何其他特定项目,可以直接集成到您的应用程序中。

核心特性

  1. 多服务提供商策略

    • 同时支持OpenAI、Anthropic和Google Gemini
    • 服务优先级排序和智能切换
    • 限流时立即切换,不等待重试间隔
  2. 快速限流检测机制

    • 毫秒级识别API限流情况
    • 基于错误代码和消息模式的智能判断
  3. 多级故障转移系统

    • 主要服务 → 其他提供商 → 备用服务的转移路径
    • 高性能模型与轻量级模型的组合策略
  4. 智能超时控制

    • 使用线程池实现超时控制
    • 可配置的超时参数,避免单个请求阻塞系统
  5. 服务健康监控

    • 断路器模式,暂时禁用频繁失败的服务
    • 自动冷却期后恢复服务
    • 全面的服务状态监控

安装指南

前提条件

  • Python 3.8+
  • 至少一个大模型服务的API密钥(OpenAI、Anthropic或Google Gemini)

从PyPI安装

bash pip install stable-llm-service

从源码安装

bash git clone https://github.com/yourusername/stable-llm-service.git cd stable-llm-service pip install -e .

设置API密钥

设置环境变量(或在代码中直接提供) ```bash

Linux/Mac

export OPENAIAPIKEY=your-openai-key export ANTHROPICAPIKEY=your-anthropic-key export GEMINIAPIKEY=your-gemini-key

Windows

set OPENAIAPIKEY=your-openai-key set ANTHROPICAPIKEY=your-anthropic-key set GEMINIAPIKEY=your-gemini-key ```

使用方法

命令行工具

安装后,您可以使用以下命令行工具:

聊天

bash stable-llm-chat

交互式聊天,或传递单个提示词:

bash stable-llm-chat --prompt "用简短的一句话解释什么是量子计算"

图像分析

bash stable-llm-analyze image.jpg

自定义提示词:

bash stable-llm-analyze image.jpg --prompt "这张图片中有什么不寻常的东西?"

作为Python库使用

基本用法

```python from stablellmservice import StableLLMService

初始化服务

service = StableLLMService( # 可以直接提供API密钥或通过环境变量设置 openaiapikey="your-openai-key", anthropicapikey="your-anthropic-key", geminiapikey="your-gemini-key", servicetimeout=10.0, # 服务超时时间(秒) failurethreshold=3, # 触发断路器的失败阈值 cooldownperiod=60.0 # 服务禁用冷却期(秒) )

发送聊天请求

response = service.chat("Hello, how are you?") print(response["raw_content"])

图像分析(如果支持)

from PIL import Image image = Image.open("example.jpg") response = service.analyze("Describe this image", image) print(response["raw_content"])

查看服务状态

status = service.getservicestatus() print(status) ```

配置优先级顺序

您可以自定义LLM服务的调用顺序:

python service = StableLLMService( service_order=["anthropic", "openai", "gemini"] # 先尝试Anthropic,然后OpenAI,最后Gemini )

示例程序

项目包含了一些示例程序,您可以查看examples目录:

```bash

简单聊天示例

python -m stablellmservice.examples.simple_chat

图像分析示例

python -m stablellmservice.examples.image_analysis --image path/to/your/image.jpg ```

集成到现有项目

只需将stable_llm_service包导入到您的项目中,并根据需要进行使用。包是完全独立的,不需要任何外部依赖(除了标准库和指定的第三方库)。

可定制化

该服务设计为高度可定制:

  • 可以调整每个模型的配置(超时、温度等)
  • 可以修改断路器参数(失败阈值、冷却期)
  • 可以扩展支持其他LLM提供商

适用场景

  • 需要高可靠性的生产环境
  • 处理高并发LLM请求的应用
  • 对API限流敏感的系统
  • 需要快速响应的交互式应用
  • 希望平衡成本和性能的混合模型策略

贡献

欢迎贡献!请查看贡献指南获取更多信息。

许可证

MIT

Owner

  • Name: Heyang Gong
  • Login: 1587causalai
  • Kind: user

1587causalai

GitHub Events

Total
  • Push event: 6
  • Fork event: 1
  • Create event: 2
Last Year
  • Push event: 6
  • Fork event: 1
  • Create event: 2

Dependencies

.github/workflows/python-package.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
pyproject.toml pypi
requirements.txt pypi
  • anthropic >=0.5.0
  • google-generativeai >=0.3.0
  • openai >=1.0.0
  • pillow >=9.0.0
  • python-dotenv >=1.0.0
  • requests >=2.28.0
setup.py pypi