package aiwire

// EmbeddingsRequest 是 OpenAI /v1/embeddings 请求体(input 兼容 string 与 []string)。
type EmbeddingsRequest struct {
	Model          string     `json:"model"`
	Input          StringList `json:"input"`
	EncodingFormat string     `json:"encoding_format,omitempty"`
	Dimensions     *int       `json:"dimensions,omitempty"`
	User           string     `json:"user,omitempty"`
}

// Embedding 是一条向量结果。
type Embedding struct {
	Object    string    `json:"object"`
	Index     int       `json:"index"`
	Embedding []float32 `json:"embedding"`
}

// EmbeddingsResponse 是 /v1/embeddings 响应体。
type EmbeddingsResponse struct {
	Object string      `json:"object"`
	Data   []Embedding `json:"data"`
	Model  string      `json:"model"`
	Usage  *EmbedUsage `json:"usage,omitempty"`
}

// EmbedUsage 是 embeddings 用量(无输出侧计数)。
type EmbedUsage struct {
	PromptTokens int `json:"prompt_tokens"`
	TotalTokens  int `json:"total_tokens"`
}
