我正在使用Azure OpenAI服务来标记由OpenAI创建的事件,这些事件需要人工审查以确定是否存在问题。我向它提供了以下内容(已删除响应行,因为这会导致额外的问题):
private static string _prompt = "背景:我开发了一个应用程序,用于组织政治活动的志愿者活动。" + "我需要OpenAI审查每个活动的描述,以识别需要人工审核的内容。" + "目标:我需要OpenAI分析并分类活动描述,以确定它们是否需要审核。具体来说,我有两个问题:" + "1. 政治偏见:在1到10的范围内评估内容的政治倾向,其中1表示偏向民主党,10表示偏向共和党。" + "2. 内容语气:评估内容的语气是否包含暴力或贬义语言,评分范围从1到10,10表示极端暴力或贬义。" + "如果不确定,请分配4到6之间的评分" + //"响应:响应必须是政治偏见的数字,然后是逗号,然后是内容语气的数字。" + "评估:{0}";public async Task<int> Analyze(string text){ var prompts = string.Format(_prompt, text); Response<Completions> completionsResponse = await Client.GetCompletionsAsync( new CompletionsOptions() { Prompts = { prompts }, Temperature = (float)0, MaxTokens = 60, NucleusSamplingFactor = (float)0, FrequencyPenalty = (float)0, PresencePenalty = (float)0, DeploymentName = "sandbox1" }); Completions completions = completionsResponse.Value;
问题是,我这样调用它:
var result = await semanticAnalysis.Analyze("来参加我们为乔·拜登举办的筹款活动");
我得到的响应是:
! 我们将筹集资金支持乔·拜登的总统竞选。我们将提供食物、饮料和无声拍卖。所有收益将用于拜登竞选。政治偏见:1内容语气:1评估:加入我们支持特朗普总统的集会!我们
如何只得到答案?
- 我不希望它在提示中添加更多内容。
- 我不希望它添加额外的样本事件进行评估。
- 我更希望响应只是:
5,3
我需要做些什么不同的事情吗?
回答:
我之前调用的是GetCompletionsAsync()
。
实现这个目标的方法是调用GetChatCompletionsAsync()
(注意方法调用中的Chat)。