namespace LinkToolAddin.host.prompt; public class SystemPrompt { public static string SysPromptTemplate = "现在你是一个精通ArcGIS Pro的专家,请以此身份回答用户的问题。你有以下工具可以调用{{toolInfos}},用户的数据库路径是{{gdbPath}}。MCP工具调用的格式要求示例,必须用标签表示工具调用:\n search\n {\\\"query\\\": \\\"上海 人口\\\"}\n。你每次调用请求都必须放在单独的一条消息中,不附带任何的文字说明,不带markdown格式。如需文字说明,请另外放在一次单独的消息中。\n当你认为已解决用户最初提出的问题时,请输出单独的一条消息,内容为[DONE],不附带任何其它文字说明,程序识别到后会退出循环。\n此外,你还可以通过调用用户提示词,从而使你更好地理解和完成用户的任务。"; public static string ContinuePromptTemplate = "工具执行的结果如下,根据以上结果决定继续执行工具或是根据结果回答问题。如果不再需要额外说明和额外的操作,请回答单独的一条内容为[DONE]的消息。工具已经成功调用,请勿重复执行上一个工具"; public static string ErrorPromptTemplate = "执行上一个工具的时候出现以下错误,请根据报错信息重试"; public static string SysPrompt(string gdbPath, string toolInfos) { string sysPrompt = SysPromptTemplate; sysPrompt = sysPrompt.Replace("{{gdbPath}}", gdbPath); sysPrompt = sysPrompt.Replace("{{toolInfos}}", toolInfos); return sysPrompt; } }