Documentation
¶
Index ¶
- type MockModel
- func (m *MockModel) AddResponse(resp MockResponse)
- func (m *MockModel) Generate(ctx context.Context, input []*schema.Message) (*schema.Message, error)
- func (m *MockModel) GetCallCount() int
- func (m *MockModel) GetLastInput() []*schema.Message
- func (m *MockModel) GetLastInputAudioParts() []schema.InputAudio
- func (m *MockModel) GetLastInputContentTypes() []string
- func (m *MockModel) GetLastInputImages() []string
- func (m *MockModel) GetLastInputTextContent() string
- func (m *MockModel) GetModelName() string
- func (m *MockModel) GetMultimodalCallCount() int
- func (m *MockModel) GetRecordedInputs() [][]*schema.Message
- func (m *MockModel) HasMultimodalInput() bool
- func (m *MockModel) Reset()
- func (m *MockModel) SetGenerateFunc(fn func(ctx context.Context, input []*schema.Message) (*schema.Message, error))
- func (m *MockModel) SetLoop(loop bool)
- func (m *MockModel) SetModelName(name string)
- func (m *MockModel) SetStreamFunc(...)
- func (m *MockModel) Stream(ctx context.Context, input []*schema.Message) (*schema.StreamReader, error)
- type MockResponse
- func MockDelayedResponse(content string, delay time.Duration) MockResponse
- func MockErrorResponse(err error) MockResponse
- func MockMultimodalBase64Response(text string, mediaType, base64Data string) MockResponse
- func MockMultimodalResponse(text string, imageURLs ...string) MockResponse
- func MockOutputAudioResponse(text string, format, base64Data string) MockResponse
- func MockOutputImagesResponse(text string, imageURLs ...string) MockResponse
- func MockReasoningResponse(content, reasoning string) MockResponse
- func MockTextResponse(content string) MockResponse
- func MockToolCallResponse(toolName string, args map[string]any) MockResponse
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type MockModel ¶
type MockModel struct {
// contains filtered or unexported fields
}
MockModel 用于测试的模拟模型 不需要真实 API Key 和网络请求,可精确控制响应行为
func NewMockModelWithResponses ¶
func NewMockModelWithResponses(responses ...MockResponse) *MockModel
NewMockModelWithResponses 创建带预设响应的 Mock 模型
func NewStreamingMockModel ¶
NewStreamingMockModel 流式模型
func NewWeatherMockModel ¶
func NewWeatherMockModel() *MockModel
NewWeatherMockModel 天气助手:第一次返回工具调用,第二次返回结果
func (*MockModel) AddResponse ¶
func (m *MockModel) AddResponse(resp MockResponse)
AddResponse 追加一个预设响应
func (*MockModel) GetLastInput ¶
GetLastInput 获取最后一次输入消息
func (*MockModel) GetLastInputAudioParts ¶
func (m *MockModel) GetLastInputAudioParts() []schema.InputAudio
GetLastInputAudioParts 获取最后一次输入中的所有音频部分
func (*MockModel) GetLastInputContentTypes ¶
GetLastInputContentTypes 获取最后一次输入中所有 ContentPart 的类型
func (*MockModel) GetLastInputImages ¶
GetLastInputImages 获取最后一次输入中的所有图片 URL(base64 data URL 或 http URL)
func (*MockModel) GetLastInputTextContent ¶
GetLastInputTextContent 获取最后一次输入的纯文本内容(多模态消息也能正确返回)
func (*MockModel) GetMultimodalCallCount ¶
GetMultimodalCallCount 获取包含多模态输入的调用次数
func (*MockModel) GetRecordedInputs ¶
GetRecordedInputs 获取所有记录的输入消息(深拷贝)
func (*MockModel) HasMultimodalInput ¶
HasMultimodalInput 检查最后一次输入是否包含多模态内容
func (*MockModel) SetGenerateFunc ¶
func (m *MockModel) SetGenerateFunc(fn func(ctx context.Context, input []*schema.Message) (*schema.Message, error))
SetGenerateFunc 设置自定义 Generate 函数(优先于响应队列)
func (*MockModel) SetStreamFunc ¶
func (m *MockModel) SetStreamFunc(fn func(ctx context.Context, input []*schema.Message) (*schema.StreamReader, error))
SetStreamFunc 设置自定义 Stream 函数(优先于响应队列)
type MockResponse ¶
type MockResponse struct {
Content string // 文本内容
ReasoningContent string // 推理内容
ContentParts []schema.ContentPart // 多模态内容(优先于 Content)
OutputImages []schema.OutputImage // 输出图片
OutputAudio *schema.OutputAudio // 输出音频
ToolCalls []schema.ToolCall // 工具调用
Delay time.Duration // 模拟延迟
Error error // 是否返回错误
}
MockResponse 定义 Mock 模型的单次响应行为
func MockDelayedResponse ¶
func MockDelayedResponse(content string, delay time.Duration) MockResponse
MockDelayedResponse 带延迟的响应
func MockMultimodalBase64Response ¶
func MockMultimodalBase64Response(text string, mediaType, base64Data string) MockResponse
MockMultimodalBase64Response 多模态响应(模型返回文本 + base64 图片)
func MockMultimodalResponse ¶
func MockMultimodalResponse(text string, imageURLs ...string) MockResponse
MockMultimodalResponse 多模态响应(模型返回文本 + 图片)
func MockOutputAudioResponse ¶
func MockOutputAudioResponse(text string, format, base64Data string) MockResponse
MockOutputAudioResponse 输出音频响应(如 TTS)
func MockOutputImagesResponse ¶
func MockOutputImagesResponse(text string, imageURLs ...string) MockResponse
MockOutputImagesResponse 输出图片响应(如 DALL·E 图像生成)
func MockReasoningResponse ¶
func MockReasoningResponse(content, reasoning string) MockResponse
MockReasoningResponse 带推理的响应
func MockToolCallResponse ¶
func MockToolCallResponse(toolName string, args map[string]any) MockResponse
MockToolCallResponse 工具调用响应