message

package
v0.0.35 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 28, 2025 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BinaryContent

type BinaryContent struct {
	MIMEType string
	Data     []byte
}

func (BinaryContent) String

func (bc BinaryContent) String() string

type ContentPart

type ContentPart interface {
	// contains filtered or unexported methods
}

type CreateMessageParams

type CreateMessageParams struct {
	Role  MessageRole
	Parts []ContentPart
	Model models.ModelID
}

type Finish

type Finish struct {
	Reason FinishReason `json:"reason"`
	Time   int64        `json:"time"`
}

type FinishReason

type FinishReason string
const (
	FinishReasonEndTurn          FinishReason = "end_turn"
	FinishReasonMaxTokens        FinishReason = "max_tokens"
	FinishReasonToolUse          FinishReason = "tool_use"
	FinishReasonCanceled         FinishReason = "canceled"
	FinishReasonError            FinishReason = "error"
	FinishReasonPermissionDenied FinishReason = "permission_denied"

	// Should never happen
	FinishReasonUnknown FinishReason = "unknown"
)

type ImageURLContent

type ImageURLContent struct {
	URL    string `json:"url"`
	Detail string `json:"detail,omitempty"`
}

func (ImageURLContent) String

func (iuc ImageURLContent) String() string

type Message

type Message struct {
	ID        string
	Role      MessageRole
	SessionID string
	Parts     []ContentPart
	Model     models.ModelID

	CreatedAt int64
	UpdatedAt int64
}

func (*Message) AddBinary

func (m *Message) AddBinary(mimeType string, data []byte)

func (*Message) AddFinish

func (m *Message) AddFinish(reason FinishReason)

func (*Message) AddImageURL

func (m *Message) AddImageURL(url, detail string)

func (*Message) AddToolCall

func (m *Message) AddToolCall(tc ToolCall)

func (*Message) AddToolResult

func (m *Message) AddToolResult(tr ToolResult)

func (*Message) AppendContent

func (m *Message) AppendContent(delta string)

func (*Message) AppendReasoningContent

func (m *Message) AppendReasoningContent(delta string)

func (*Message) AppendToolCallInput

func (m *Message) AppendToolCallInput(toolCallID string, inputDelta string)

func (*Message) BinaryContent

func (m *Message) BinaryContent() []BinaryContent

func (*Message) Content

func (m *Message) Content() TextContent

func (*Message) FinishPart

func (m *Message) FinishPart() *Finish

func (*Message) FinishReason

func (m *Message) FinishReason() FinishReason

func (*Message) FinishToolCall

func (m *Message) FinishToolCall(toolCallID string)

func (*Message) ImageURLContent

func (m *Message) ImageURLContent() []ImageURLContent

func (*Message) IsFinished

func (m *Message) IsFinished() bool

func (*Message) IsThinking

func (m *Message) IsThinking() bool

func (*Message) ReasoningContent

func (m *Message) ReasoningContent() ReasoningContent

func (*Message) SetToolCalls

func (m *Message) SetToolCalls(tc []ToolCall)

func (*Message) SetToolResults

func (m *Message) SetToolResults(tr []ToolResult)

func (*Message) ToolCalls

func (m *Message) ToolCalls() []ToolCall

func (*Message) ToolResults

func (m *Message) ToolResults() []ToolResult

type MessageRole

type MessageRole string
const (
	Assistant MessageRole = "assistant"
	User      MessageRole = "user"
	System    MessageRole = "system"
	Tool      MessageRole = "tool"
)

type ReasoningContent

type ReasoningContent struct {
	Thinking string `json:"thinking"`
}

func (ReasoningContent) String

func (tc ReasoningContent) String() string

type Service

type Service interface {
	pubsub.Suscriber[Message]
	Create(ctx context.Context, sessionID string, params CreateMessageParams) (Message, error)
	Update(ctx context.Context, message Message) error
	Get(ctx context.Context, id string) (Message, error)
	List(ctx context.Context, sessionID string) ([]Message, error)
	Delete(ctx context.Context, id string) error
	DeleteSessionMessages(ctx context.Context, sessionID string) error
}

func NewService

func NewService(q db.Querier) Service

type TextContent

type TextContent struct {
	Text string `json:"text"`
}

func (TextContent) String

func (tc TextContent) String() string

type ToolCall

type ToolCall struct {
	ID       string `json:"id"`
	Name     string `json:"name"`
	Input    string `json:"input"`
	Type     string `json:"type"`
	Finished bool   `json:"finished"`
}

type ToolResult

type ToolResult struct {
	ToolCallID string `json:"tool_call_id"`
	Name       string `json:"name"`
	Content    string `json:"content"`
	Metadata   string `json:"metadata"`
	IsError    bool   `json:"is_error"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL