在使用Semantic Kernel时,有没有通用的方法来转义提示中的特殊字符?

这是我在C#中调用提示的方式:

var result = await kernel.InvokePromptAsync(prompt, new(executionSettings));        

这个方法运行得很好,除了当提示中包含类似下面的内容时:

{ bla } {{ bla }} { $bla } {{ bla }} {{request}} {{choices.[0]}}

我会遇到以下错误:

Unhandled exception. Microsoft.SemanticKernel.KernelException: The function identifier is empty

显然这是因为{{}}被用来注入值或函数。

这份文档建议转义大括号https://learn.microsoft.com/en-us/semantic-kernel/concepts/prompts/prompt-template-syntax#prompts-needing-double-curly-braces,这里还有一些关于单引号和双引号的内容https://learn.microsoft.com/en-us/semantic-kernel/concepts/prompts/prompt-template-syntax#values-that-include-quotes-and-escaping

Semantic Kernel中有没有内置的方法来进行字符转义,这样我就不需要自己编写代码了?我更希望不自己编写,因为我可能做错。


回答:

我还没有找到“开箱即用”的解决方案,所以我目前是这样做的,直到找到更好的方法。

prompt = prompt    .Replace("{{", "{{ \"{{\" }}")    .Replace("}}", "{{ \"}}\" }}");

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注