dvc890's picture
Upload 30 files
f16d50c
package chatgpt
import (
"github.com/google/uuid"
)
type CreateConversationRequest struct {
Action string `json:"action"`
Messages []Message `json:"messages"`
Model string `json:"model"`
ParentMessageID string `json:"parent_message_id"`
ConversationID *string `json:"conversation_id"`
PluginIDs []string `json:"plugin_ids"`
TimezoneOffsetMin int `json:"timezone_offset_min"`
ArkoseToken string `json:"arkose_token"`
HistoryAndTrainingDisabled bool `json:"history_and_training_disabled"`
AutoContinue bool `json:"auto_continue"`
Suggestions []string `json:"suggestions"`
}
func (c *CreateConversationRequest) AddMessage(role string, content string) {
c.Messages = append(c.Messages, Message{
ID: uuid.New().String(),
Author: Author{Role: role},
Content: Content{ContentType: "text", Parts: []interface{}{content}},
Metadata: map[string]string{},
})
}
type Message struct {
Author Author `json:"author"`
Content Content `json:"content"`
ID string `json:"id"`
Metadata interface{} `json:"metadata"`
}
type Author struct {
Role string `json:"role"`
}
type Content struct {
ContentType string `json:"content_type"`
Parts []interface{} `json:"parts"`
}
type CreateConversationResponse struct {
Message struct {
ID string `json:"id"`
Author struct {
Role string `json:"role"`
Name interface{} `json:"name"`
Metadata struct {
} `json:"metadata"`
} `json:"author"`
CreateTime float64 `json:"create_time"`
UpdateTime interface{} `json:"update_time"`
Content struct {
ContentType string `json:"content_type"`
Parts []string `json:"parts"`
} `json:"content"`
Status string `json:"status"`
EndTurn bool `json:"end_turn"`
Weight float64 `json:"weight"`
Metadata struct {
MessageType string `json:"message_type"`
ModelSlug string `json:"model_slug"`
FinishDetails struct {
Type string `json:"type"`
} `json:"finish_details"`
} `json:"metadata"`
Recipient string `json:"recipient"`
} `json:"message"`
ConversationID string `json:"conversation_id"`
Error interface{} `json:"error"`
}
type GetModelsResponse struct {
Models []struct {
Slug string `json:"slug"`
MaxTokens int `json:"max_tokens"`
Title string `json:"title"`
Description string `json:"description"`
Tags []string `json:"tags"`
Capabilities struct {
} `json:"capabilities"`
EnabledTools []string `json:"enabled_tools,omitempty"`
} `json:"models"`
Categories []struct {
Category string `json:"category"`
HumanCategoryName string `json:"human_category_name"`
SubscriptionLevel string `json:"subscription_level"`
DefaultModel string `json:"default_model"`
CodeInterpreterModel string `json:"code_interpreter_model"`
PluginsModel string `json:"plugins_model"`
} `json:"categories"`
}