Documentation
¶
Overview ¶
Package gigachat Предоставляет доступ Gigachat
Этот пакет сделан для того чтоб спрашивать у нейросети gigachat от сбера. Так и делать embedding
Index ¶
Constants ¶
View Source
const ( GigaChatTokenFileEnv = "GIGACHAT_TOKEN_FILE" // Перемеменная среды с путем к файлу с токеном GigaChatExpiresFileEnv = "GIGACHAT_EXPIRES_FILE" // Переменная среды с путем к файл где время устревания токена GigaChatToken = "GIGACHAT_TOKEN" // Или токен берем из окружения GigaChatAuthData = "GIGACHAT_AUTH_DATA" // Данные дла авторизации чтоб получить токен GigaChatOauthUrl = "https://ngw.devices.sberbank.ru:9443/api/v2/oauth" )
Авторизауия
View Source
const ( GigaChatApiHost = "gigachat.devices.sberbank.ru" //1 - gigachat.devices.sberbank.ru 2 gigachat-preview.devices.sberbank.ru GigaChatModelsPath = "/api/v1/models" GigaChatChatCompletionPath = "/api/v1/chat/completions" GigaChatEmbeddingsPath = "/api/v1/embeddings" )
Ручки API
View Source
const ( GigaChatModel = "GigaChat" // GigaChat, GigaChat-Pro, GigaChat-Max Если тестовый хост то GigaChat-Pro-preview GigaChatMaxTokens = 16384 MaxEmbeddingSize = 8192 GigaChatRoleUser = "user" GigaChatRoleSystem = "system" GigaChatRoleAssistant = "assistant" )
Настройки
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ChatCompletionRequest ¶
type ChatCompletionRequest struct { Model string `json:"model"` Messages []MessageRequest `json:"messages"` Stream bool `json:"stream"` RepetitionPenalty int `json:"repetition_penalty"` Temperature float32 `json:"temperature"` TopP float32 `json:"top_p"` MaxTokens int `json:"max_tokens"` UpdateInterval int `json:"update_interval"` }
type ChatCompletionResponse ¶
type ChatCompletionResponse struct { Choices []ChoicesResponse `json:"choices"` Created int `json:"created"` Model string `json:"model"` Usage Usage `json:"usage"` Object string `json:"object"` }
type ChoicesResponse ¶
type ChoicesResponse struct { Message MessageRequest `json:"message"` Index int `json:"index"` FinishReason string `json:"finish_reason"` }
type EmbeddingsRequest ¶
type EmbeddingsResponse ¶
type Gigachat ¶
type Gigachat struct { ApiHost string RepetitionPenalty int TopP float32 Model string MaxTokens int Temperature float32 AuthData string }
func NewGigachat ¶
func NewGigachat() *Gigachat
func (*Gigachat) ChatCompletions ¶
func (g *Gigachat) ChatCompletions(messages []MessageRequest) (string, error)
ChatCompletions Сдалать запрос к модели.
func (*Gigachat) Embeddings ¶
Embeddings получить вектора текста. Ограничение по количеству что-то типа 512.
type MessageRequest ¶
type MessageResponse ¶
type ModelItem ¶
type ModelItem struct { ID string `json:"id"` Object string `json:"object"` OwnedBy string `json:"owned_by"` }
Модель
type ModelsResponse ¶
Ответ на запрос списка моделей
type TokenResponse ¶
type TokenResponse struct { AccessToken string `json:"access_token"` ExpiresAt int64 `json:"expires_at"` }
Ответ с токенос
type Usage ¶
type Usage struct { // Данные об использовании модели. PromptTokens int `json:"prompt_tokens"` // int32 Количество токенов во входящем сообщении (роль user). CompletionTokens int `json:"completion_tokens,omitempty"` // int32 Количество токенов, сгенерированных моделью (роль assistant). TotalTokens int `json:"total_tokens,omitempty"` //int32 Общее количество токенов. }
Статистика использования
Click to show internal directories.
Click to hide internal directories.