Files
ai-agent/contract/platform_ai.go
T

57 lines
1.8 KiB
Go
Raw Normal View History

package contract
import (
"context"
"net/http"
)
const (
ModelSourcePlatform = "platform"
ModelSourceCustom = "custom"
)
// PlatformAIConfig is a runtime-only OpenAI-compatible model configuration.
// Credentials and the signed HTTP client are supplied by the host and are
// never persisted in Agent Desk tables or returned by dashboard APIs.
type PlatformAIConfig struct {
BaseURL string
APIKey string
ChatEnabled bool
ChatModel string
VisionEnabled bool
VisionModel string
EmbeddingEnabled bool
ModelName string
EmbeddingModel string
EmbeddingDimension int
MaxOutputTokens int
TimeoutMS int
MaxRetryCount int
HTTPClient *http.Client
}
type PlatformAIStatus struct {
Enabled bool `json:"enabled"`
Balance float64 `json:"balance"`
Currency string `json:"currency"`
DefaultProvider string `json:"default_provider"`
DefaultModel string `json:"default_model"`
ChatEnabled bool `json:"chat_enabled"`
ChatProvider string `json:"chat_provider"`
ChatModel string `json:"chat_model"`
VisionEnabled bool `json:"vision_enabled"`
VisionModel string `json:"vision_model"`
EmbeddingEnabled bool `json:"embedding_enabled"`
EmbeddingModel string `json:"embedding_model"`
EmbeddingDimension int `json:"embedding_dimension"`
RechargeURL string `json:"recharge_url"`
}
// PlatformAIProvider lets the host resolve the current model source on every
// request, so changing the system setting takes effect without restarting.
type PlatformAIProvider interface {
ModelSource(context.Context) (string, error)
Config(context.Context) (*PlatformAIConfig, error)
Status(context.Context) (*PlatformAIStatus, error)
}