WrapModelCall 包装模型调用
(ctx context.Context, req *ModelRequest, handler ModelCallHandler)
| 108 | |
| 109 | // WrapModelCall 包装模型调用 |
| 110 | func (m *FilesystemMiddleware) WrapModelCall(ctx context.Context, req *ModelRequest, handler ModelCallHandler) (*ModelResponse, error) { |
| 111 | // 确定要使用的系统提示词 |
| 112 | // 如果 systemPromptOverride 被设置(包括空字符串),使用它 |
| 113 | // 否则使用默认的 FILESYSTEM_SYSTEM_PROMPT |
| 114 | prompt := m.systemPromptOverride |
| 115 | if !m.hasSystemPromptOverride { |
| 116 | prompt = FILESYSTEM_SYSTEM_PROMPT |
| 117 | } |
| 118 | |
| 119 | // 只有当 prompt 非空时才增强系统提示词 |
| 120 | if prompt != "" { |
| 121 | if req.SystemPrompt != "" { |
| 122 | req.SystemPrompt += "\n\n" + prompt |
| 123 | } else { |
| 124 | req.SystemPrompt = prompt |
| 125 | } |
| 126 | } |
| 127 | |
| 128 | // 调用下一层 |
| 129 | return handler(ctx, req) |
| 130 | } |
| 131 | |
| 132 | // WrapToolCall 包装工具调用 |
| 133 | func (m *FilesystemMiddleware) WrapToolCall(ctx context.Context, req *ToolCallRequest, handler ToolCallHandler) (*ToolCallResponse, error) { |