Files
opantoantro/docs/wiki/BifrostTransform.md
T
Beyhan Ogur a408821410 first commit
2026-05-11 15:08:50 +03:00

2.5 KiB
Raw Blame History

BifrostTransform

Özet: Anthropic Messages API formatı ile OpenAI Chat Completions formatı arasında çift yönlü dönüşüm yapan katman (internal/transform/anthropic_bifrost.go:74). "Bifrost" (İskandinav mitolojisindeki köprü) adı, two-way dönüşümü simgeler.

Kütüphaneler: Go encoding/json, strings

Bağlantılar: AnthropicHandler, Index

Struct'lar

Anthropic Format (Giriş/Çıkış)

Struct Alanlar
AnthropicRequest Model, MaxTokens, Messages []AnthropicMessage, System, Stream
AnthropicMessage Role, Content
AnthropicResponse ID, Type, Role, Content []AnthropicContent, Model, StopReason, StopSequence
AnthropicContent Type, Text

OpenAI / Bifrost Format (Ara Katman)

Struct Alanlar
BifrostRequest Model, Messages []BifrostMessage, MaxTokens, Stream
BifrostMessage Role, Content
BifrostResponse ID, Object, Created, Model, Choices[{Message{Role,Content}, FinishReason, Index}]

Dönüşüm Detayları

Anthropic → OpenAI (AnthropicToBifrost())

Anthropic Request                     OpenAI Request
─────────────────                     ─────────────
model: "claude-3-5-sonnet"     →     model: "Anthropic/claude-3-5-sonnet"
system: "Be helpful"           →     messages: [{role:"system", ...}, ...]
messages: [{role, content}]    →     messages: [{role, content}]
max_tokens: 1024               →     max_tokens: 1024
stream: true                   →     stream: true

OpenAI → Anthropic (BifrostToAnthropic())

OpenAI Response                       Anthropic Response
───────────────                       ─────────────────
id: "chatcmpl-xxx"             →     id: "chatcmpl-xxx"
choices[].message.content      →     content: [{type:"text", text:"..."}]
choices[].finish_reason        →     stop_reason: "stop"/"end_turn"
model                          →     model (same)

Model Prefix Tahmini (guessProvider())

Model içerir Prefix Örnek
deepseek DeepSeek/ deepseek-v4DeepSeek/deepseek-v4
gpt, openai OpenAI/ gpt-4OpenAI/gpt-4
claude, anthropic Anthropic/ claude-3Anthropic/claude-3
gemini Google/ gemini-proGoogle/gemini-pro
diğer DeepSeek/ (varsayılan)