gpt4all 聊天服务会话管理器

问题描述 投票:0回答:1

下面是使用 GPT4All

chat_session
上下文管理器来维护与模型的聊天对话的 Python 代码。

model = GPT4All(model_name='orca-mini-3b-gguf2-q4_0.gguf')  
with model.chat_session():     
    response1 = model.generate(prompt='hello', temp=0)     
    response2 = model.generate(prompt='write me a short poem', temp=0)     
    response3 = model.generate(prompt='thank you', temp=0)         
    print(model.current_chat_session)`

但是当我的后端服务使用此代码时,将为每个前端调用打开一个新会话。 WITH 代码块返回一个上下文管理器。每次代码运行时,当前会话都会关闭。无法同时实现对前端的多个调用。在会话中,保持AI聊天的语境连贯性

我想使用 gpt4all 实现一个 AI 聊天后端服务,其中同一会话中的多个调用可以保持上下文连贯性,使对话完整。您能否帮助我优化

with
块中的内容,以确保前端在通话期间保持在同一会话中?

python artificial-intelligence chat gpt4all
1个回答
0
投票

我现在的解决方案是在达到上下文限制之前关闭会话,因此必须经常执行或按需执行/计算令牌等。

开始了:

with mgpt.chat_session() as session:
  ...
  #a deep loop which has speech recognition as well etc.

如果我想中断会话,我使用一个标志:

if bNewChatSession: session.close(); break

然后它返回嵌套循环/块并开始一个新的会话。但是它会忘记当前的。

如果必须与前一个会话更加连续,则新会话的第一个提示可能会在前一个会话的结尾部分前面加上,或者可能会对其进行部分编辑或选择一些单词,然后附加结束部分完全等。所有这些都在第一个提示符前面。可能需要进行一些权衡,太长的前置提示会很慢,因此可能类似于内置的上下文调整大小。

顺便说一句,IMO 这个消息是一个“半错误”,因为生成只是暂停。调整上下文大小后,该过程将从暂停的令牌处继续。

© www.soinside.com 2019 - 2024. All rights reserved.