chatmodel

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: May 23, 2026 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BaseModel

type BaseModel interface {
	Generate(ctx context.Context, input []*schema.Message) (*schema.Message, error)
	Stream(ctx context.Context, input []*schema.Message) (*schema.StreamReader, error)
}

type MockModel

type MockModel struct {
	// contains filtered or unexported fields
}

MockModel 用于测试的模拟模型 不需要真实 API Key 和网络请求,可精确控制响应行为

func NewEchoMockModel

func NewEchoMockModel() *MockModel

NewEchoMockModel 回声模型:返回用户最后一条文本内容

func NewMockModel

func NewMockModel() *MockModel

NewMockModel 创建空的 Mock 模型

func NewMockModelWithResponses

func NewMockModelWithResponses(responses ...MockResponse) *MockModel

NewMockModelWithResponses 创建带预设响应的 Mock 模型

func NewStreamingMockModel

func NewStreamingMockModel(content string) *MockModel

NewStreamingMockModel 流式模型

func NewWeatherMockModel

func NewWeatherMockModel() *MockModel

NewWeatherMockModel 天气助手:第一次返回工具调用,第二次返回结果

func (*MockModel) AddResponse

func (m *MockModel) AddResponse(resp MockResponse)

AddResponse 追加一个预设响应

func (*MockModel) Generate

func (m *MockModel) Generate(ctx context.Context, input []*schema.Message) (*schema.Message, error)

Generate 实现 BaseModel 接口

func (*MockModel) GetCallCount

func (m *MockModel) GetCallCount() int

GetCallCount 获取调用次数

func (*MockModel) GetLastInput

func (m *MockModel) GetLastInput() []*schema.Message

GetLastInput 获取最后一次输入消息

func (*MockModel) GetLastInputImages

func (m *MockModel) GetLastInputImages() []string

GetLastInputImages 获取最后一次输入中的所有图片 URL(base64 data URL 或 http URL)

func (*MockModel) GetLastInputTextContent

func (m *MockModel) GetLastInputTextContent() string

GetLastInputTextContent 获取最后一次输入的纯文本内容(多模态消息也能正确返回)

func (*MockModel) GetModelName

func (m *MockModel) GetModelName() string

GetModelName 返回模型名称

func (*MockModel) GetMultimodalCallCount

func (m *MockModel) GetMultimodalCallCount() int

GetMultimodalCallCount 获取包含多模态输入的调用次数

func (*MockModel) GetRecordedInputs

func (m *MockModel) GetRecordedInputs() [][]*schema.Message

GetRecordedInputs 获取所有记录的输入消息(深拷贝)

func (*MockModel) HasMultimodalInput

func (m *MockModel) HasMultimodalInput() bool

HasMultimodalInput 检查最后一次输入是否包含多模态内容

func (*MockModel) Reset

func (m *MockModel) Reset()

Reset 重置状态

func (*MockModel) SetGenerateFunc

func (m *MockModel) SetGenerateFunc(fn func(ctx context.Context, input []*schema.Message) (*schema.Message, error))

SetGenerateFunc 设置自定义 Generate 函数(优先于响应队列)

func (*MockModel) SetLoop

func (m *MockModel) SetLoop(loop bool)

SetLoop 设置是否循环使用响应队列

func (*MockModel) SetModelName

func (m *MockModel) SetModelName(name string)

SetModelName 设置模型名称

func (*MockModel) SetStreamFunc

func (m *MockModel) SetStreamFunc(fn func(ctx context.Context, input []*schema.Message) (*schema.StreamReader, error))

SetStreamFunc 设置自定义 Stream 函数(优先于响应队列)

func (*MockModel) Stream

func (m *MockModel) Stream(ctx context.Context, input []*schema.Message) (*schema.StreamReader, error)

Stream 实现 BaseModel 接口

type MockResponse

type MockResponse struct {
	Content          string               // 文本内容
	ReasoningContent string               // 推理内容
	ContentParts     []schema.ContentPart // 多模态内容(优先于 Content)
	ToolCalls        []schema.ToolCall    // 工具调用
	Delay            time.Duration        // 模拟延迟
	Error            error                // 是否返回错误
}

MockResponse 定义 Mock 模型的单次响应行为

func MockDelayedResponse

func MockDelayedResponse(content string, delay time.Duration) MockResponse

MockDelayedResponse 带延迟的响应

func MockErrorResponse

func MockErrorResponse(err error) MockResponse

MockErrorResponse 错误响应

func MockMultimodalBase64Response

func MockMultimodalBase64Response(text string, mediaType, base64Data string) MockResponse

MockMultimodalBase64Response 多模态响应(模型返回文本 + base64 图片)

func MockMultimodalResponse

func MockMultimodalResponse(text string, imageURLs ...string) MockResponse

MockMultimodalResponse 多模态响应(模型返回文本 + 图片)

func MockReasoningResponse

func MockReasoningResponse(content, reasoning string) MockResponse

MockReasoningResponse 带推理的响应

func MockTextResponse

func MockTextResponse(content string) MockResponse

MockTextResponse 纯文本响应

func MockToolCallResponse

func MockToolCallResponse(toolName string, args map[string]any) MockResponse

MockToolCallResponse 工具调用响应

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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