Enha: add openrouter parser
This commit is contained in:
86
llmapi/models.go
Normal file
86
llmapi/models.go
Normal file
@ -0,0 +1,86 @@
|
||||
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
|
||||
}
|
Reference in New Issue
Block a user