package llmapi import ( "gralias/config" "log/slog" ) type OpenRouterResp struct { ID string `json:"id"` Provider string `json:"provider"` Model string `json:"model"` Object string `json:"object"` Created int `json:"created"` Choices []struct { Logprobs any `json:"logprobs"` FinishReason string `json:"finish_reason"` NativeFinishReason string `json:"native_finish_reason"` Index int `json:"index"` Message struct { Role string `json:"role"` Content string `json:"content"` Refusal any `json:"refusal"` Reasoning any `json:"reasoning"` } `json:"message"` } `json:"choices"` Usage struct { PromptTokens int `json:"prompt_tokens"` CompletionTokens int `json:"completion_tokens"` TotalTokens int `json:"total_tokens"` } `json:"usage"` } type DSResp struct { ID string `json:"id"` Choices []struct { Text string `json:"text"` Index int `json:"index"` FinishReason string `json:"finish_reason"` } `json:"choices"` Created int `json:"created"` Model string `json:"model"` SystemFingerprint string `json:"system_fingerprint"` Object string `json:"object"` } type LLMResp struct { Index int `json:"index"` Content string `json:"content"` Tokens []any `json:"tokens"` IDSlot int `json:"id_slot"` Stop bool `json:"stop"` Model string `json:"model"` TokensPredicted int `json:"tokens_predicted"` TokensEvaluated int `json:"tokens_evaluated"` Prompt string `json:"prompt"` HasNewLine bool `json:"has_new_line"` Truncated bool `json:"truncated"` StopType string `json:"stop_type"` StoppingWord string `json:"stopping_word"` TokensCached int `json:"tokens_cached"` } type MimeResp struct { Clue string `json:"clue"` Number string `json:"number"` Answer []string `json:"words_I_mean_my_team_to_open"` } type GusserResp struct { Guesses []string `json:"guesses"` CouldBe []string `json:"could_be"` } type Bot struct { Role string `json:"role"` Team string `json:"team"` cfg *config.Config `json:"-"` RoomID string `json:"room_id"` // can we get a room from here? BotName string `json:"bot_name"` log *slog.Logger `json:"-"` LLMParser RespParser `json:"-"` // channels for communicaton // channels are not serializable // SignalsCh chan bool // DoneCh chan bool }