ling-baseling-base

Provider 列表

40 个 channel 适配器、能力与初始化示例

在线 Playground

在浏览器中直接体验本页相关 API,无需本地安装 Go 环境。

Provider 列表

relay/channel 下每个子目录实现一个 AI provider,统一实现 common.Adaptor 接口,通过 relay.New(relay.WithProvider(...)) 接入。

Adaptor 请求流

Init → ConvertXxxRequest → GetRequestURL → SetupRequestHeader → DoRequest → DoResponse
type Adaptor interface {
    Init(info *RelayInfo)
    GetRequestURL(info *RelayInfo) (string, error)
    SetupRequestHeader(ctx, header, info) error
    ConvertOpenAIRequest(ctx, info, request) (any, error)
    ConvertClaudeRequest(ctx, info, request) (any, error)
    ConvertGeminiRequest(ctx, info, request) (any, error)
    ConvertImageRequest(ctx, info, request) (any, error)
    ConvertEmbeddingRequest(ctx, info, request) (any, error)
    ConvertAudioRequest(ctx, info, request) (io.Reader, error)
    ConvertRerankRequest(ctx, relayMode, request) (any, error)
    ConvertOpenAIResponsesRequest(ctx, info, request) (any, error)
    DoRequest(ctx, info, body) (*http.Response, error)
    DoResponse(ctx, resp, info, w) (usage any, err *types.NewAPIError)
    GetModelList() []string
    GetChannelName() string
}

全部 Channel(40)

Channel厂商/平台ChatStreamEmbedImageAudioRerank
openaiOpenAI / 兼容端点✅✅✅✅✅❌
claudeAnthropic✅✅❌❌❌❌
geminiGoogle Gemini✅✅✅✅❌❌
vertexGoogle Vertex✅✅✅✅❌❌
awsAWS Bedrock✅✅✅❌❌❌
azureAzure OpenAI✅✅✅✅✅❌
ollama本地 Ollama✅✅✅❌❌❌
deepseekDeepSeek✅✅✅❌❌❌
moonshotMoonshot/Kimi✅✅✅❌❌❌
zhipu智谱 AI✅✅✅✅❌❌
zhipu_4v智谱多模态✅✅❌✅❌❌
ali阿里云百炼✅✅✅✅❌❌
baidu百度文心✅✅✅✅❌❌
baidu_v2百度文心 v2✅✅✅❌❌❌
tencent腾讯混元✅✅❌❌❌❌
xunfei讯飞星火✅✅❌❌❌❌
volcengine火山引擎/豆包✅✅✅✅❌❌
minimaxMiniMax✅✅✅❌❌❌
cohereCohere✅✅✅❌❌✅
mistralMistral✅✅✅❌❌❌
perplexityPerplexity✅✅❌❌❌❌
openrouterOpenRouter 聚合✅✅✅❌❌❌
siliconflowSiliconFlow✅✅✅❌❌❌
huggingfaceHuggingFace✅✅✅❌❌❌
replicateReplicate✅❌❌✅❌❌
jinaJina AI❌❌✅❌❌✅
jimeng即梦❌❌❌✅❌❌
lingyiwanwu零一万物✅✅✅❌❌❌
mokaaiMokaAI✅✅❌❌❌❌
ai360360 智脑✅✅❌❌❌❌
xaixAI Grok✅✅❌❌❌❌
xinferenceXinference 自建✅✅✅❌❌❌
cloudflareCloudflare AI✅✅✅❌❌❌
coze扣子✅✅❌❌❌❌
difyDify✅✅❌❌❌❌
codexCodex✅✅❌❌❌❌
palmGoogle PaLM(旧)✅✅✅❌❌❌
sub2apiSub2API 代理✅✅✅❌❌❌
submodelSubModel✅✅❌❌❌❌
newapiNew API 网关✅✅✅❌❌❌
advancedcustom自定义适配✅✅视实现视实现视实现❌

能力因上游 API 变化可能更新,以各 channel 源码 Convert* 方法为准。

初始化示例

OpenAI / 兼容代理

import "github.com/LingByte/ling-base/relay/channel/openai"

p := openai.NewProvider("sk-xxx",
    openai.WithBaseURL("https://api.openai.com/v1"),
)
client := relay.New(relay.WithProvider(p))

Claude

import "github.com/LingByte/ling-base/relay/channel/claude"

client := relay.New(relay.WithProvider(claude.NewProvider("sk-ant-xxx")))

Gemini

import "github.com/LingByte/ling-base/relay/channel/gemini"

client := relay.New(relay.WithProvider(gemini.NewProvider(apiKey)))

国内云

import (
    "github.com/LingByte/ling-base/relay/channel/ali"
    "github.com/LingByte/ling-base/relay/channel/deepseek"
    "github.com/LingByte/ling-base/relay/channel/volcengine"
)

// 阿里云
relay.New(relay.WithProvider(ali.NewProvider(apiKey)))

// DeepSeek
relay.New(relay.WithProvider(deepseek.NewProvider("sk-...")))

// 火山引擎
relay.New(relay.WithProvider(volcengine.NewProvider(accessKey, secretKey)))

本地 Ollama

import "github.com/LingByte/ling-base/relay/channel/ollama"

relay.New(relay.WithProvider(ollama.NewProvider(
    ollama.WithBaseURL("http://127.0.0.1:11434"),
)))

聚合网关

import (
    "github.com/LingByte/ling-base/relay/channel/openrouter"
    "github.com/LingByte/ling-base/relay/channel/siliconflow"
)

relay.New(relay.WithProvider(openrouter.NewProvider(key)))
relay.New(relay.WithProvider(siliconflow.NewProvider(key)))

多 Provider 工厂

func newClient(cfg Config) *relay.Client {
    switch cfg.Provider {
    case "openai":
        return relay.New(relay.WithProvider(openai.NewProvider(cfg.Key)))
    case "claude":
        return relay.New(relay.WithProvider(claude.NewProvider(cfg.Key)))
    case "deepseek":
        return relay.New(relay.WithProvider(deepseek.NewProvider(cfg.Key)))
    default:
        panic("unknown provider: " + cfg.Provider)
    }
}

新增 Channel

  1. 在 relay/channel/<name>/ 实现 common.Adaptor
  2. 在 relay/constant/channel.go 注册 channel 类型
  3. 提供 NewProvider(apiKey, ...Option) 包装
  4. 编写单元测试(请求 URL 拼接、header 等)

详见 relay/channel/README.md。

On this page