我在 C# 编码中摆弄 ollama,并设法让它给我输出,甚至与我的代码交互,但是,使用他们提供的示例,我遇到了一个问题,LLM 没有保留以前的对话,我最终采用了在提示旁边注入说明的草率方法。
这是我的代码:
public async void Prompt(string prompt)
{
output = "";
string input = instructions + prompt;
context = await ollama.StreamCompletion(input, context, stream => output += (stream.Response));
Console.WriteLine(output);
}
输出是一个字符串,我可能会将其更改为可以稍后保存更多变量的内容。
Context 是一个 ConversationContext 变量。
这个想法是给它一个提示,让它跟随整个对话,但目前,需要通过在我的提示之前添加的指令来注入。这并不理想,因为它违背了作为法学硕士的目的。
我想做的是: 仅在启动时注入指令。 呼叫提示正常。 需要时请按照说明进行操作。
我尝试了 context += 但这不是一个有效的方法。我一直在寻找解决方案,但我只发现了另一个与此相关的问题,而且是在二月份。
感谢康威,我能够修复我的代码。由于我习惯在 Unity 中编程,所以我总是使用
Void
而不是 Task
,因为我不知道它,所以为了修复我所做的事情。
`
public async Task Prompt(string prompt)
{
output = "";
string input = prompt;
context = await ollama.StreamCompletion(input, context, stream => output += (stream.Response));
Console.WriteLine(output);
ConsoleCommands.aIResponse = true;
ConsoleCommands.checkCommand(output);
}
`
多亏了这个,我现在有了一个人工智能集成程序,可以记住之前的提示和对话。
我希望这能在未来帮助别人