MCPcopy Create free account
hub / github.com/astercloud/aster / WrapModelCall

Method WrapModelCall

pkg/middleware/filesystem.go:110–130  ·  view source on GitHub ↗

WrapModelCall 包装模型调用

(ctx context.Context, req *ModelRequest, handler ModelCallHandler)

Source from the content-addressed store, hash-verified

108
109// WrapModelCall 包装模型调用
110func (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 包装工具调用
133func (m *FilesystemMiddleware) WrapToolCall(ctx context.Context, req *ToolCallRequest, handler ToolCallHandler) (*ToolCallResponse, error) {

Calls 1

handlerFunction · 0.85