llm-connector 0.5.3

Next-generation Rust library for LLM protocol abstraction with native multi-modal support. Supports 11+ providers (OpenAI, Anthropic, Aliyun, Zhipu, Ollama, Tencent, Volcengine, LongCat, Moonshot, DeepSeek) with clean Protocol/Provider separation, type-safe interface, and universal streaming.
Documentation
# API Keys Configuration Example
# Copy this file to keys.yaml and fill in your actual API keys
# keys.yaml is in .gitignore and will not be committed

# OpenAI Protocol Providers
# All providers using the OpenAI-compatible API format
providers:
  deepseek:
    protocol: "openai"
    api_key: "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    base_url: "https://api.deepseek.com/v1"
    models: ["deepseek-chat", "deepseek-coder", "deepseek-reasoner"]

  zhipu:
    protocol: "openai"
    api_key: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxx"
    base_url: "https://open.bigmodel.cn/api/paas/v4"
    models: ["glm-4.6", "glm-4.5-air", "glm-4.5"]

  moonshot:
    protocol: "openai"
    api_key: "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    base_url: "https://api.moonshot.cn/v1"
    models: ["moonshot-thinking-preview", "moonshot-v1-8k", "moonshot-latest"]

  longcat:
    protocol: "openai"
    api_key: "ak_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    base_url: "https://api.longcat.chat/openai"
    models: ["LongCat-Flash-Chat", "LongCat-Flash-Thinking"]

  volcengine:
    protocol: "openai"
    api_key: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    base_url: "https://ark.cn-beijing.volces.com/api/v3"
    note: "Requires endpoint ID from console (format: ep-xxxxxxxx)"
    models: ["ep-20250118155555-xxxxx"] # Endpoint IDs from console

  # Aliyun Protocol Providers
  # Custom protocol used by Aliyun DashScope
  aliyun:
    protocol: "aliyun"
    api_key: "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    base_url: "https://dashscope.aliyuncs.com/api/v1"
    models: ["qwen3-max", "qwen-long"]

  # Tencent
  tencent:
    protocol: "tencent"
    api_key: "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

# How to use:
# 1. Copy this file: cp keys.yaml.example keys.yaml
# 2. Fill in your actual API keys in keys.yaml
# 3. Run tests: cargo run --example test_keys_yaml