LLM 会话管理器
语义会话管理器
class SemanticSessionManager(name, session_tag=None, prefix=None, vectorizer=None, distance_threshold=0.3, redis_client=None, redis_url='redis://localhost:6379', connection_kwargs={}, overwrite=False, **kwargs)
基地:BaseSessionManager
使用 index 初始化会话内存
Session Manager 存储当前和以前的用户文本提示和 LLM 响应,以允许使用 session 丰富未来的提示 上下文。会话历史记录存储在单个用户或 LLM 提示符中,并且 反应。
- 参数:
- name (str) – 会话管理器索引的名称。
- session_tag (可选 [ str ]) – 要添加到条目以链接到特定 会期。默认为实例 ULID。
- prefix (Optional [ str ]) – 此会话数据的键的前缀。 默认为 None ,并将替换为索引名称。
- vectorizer (Optional [ BaseVectorizer ]) – 用于创建嵌入的矢量化器。
- distance_threshold (float) – 最大语义距离 包含在上下文中。默认值为 0.3。
- redis_client (Optional [ Redis ]) – 一个 Redis 客户端实例。默认为 没有。
- redis_url (str , optional) – redis url。默认为 redis://localhost:6379。
- connection_kwargs (Dict [ str , Any ]) – 连接参数 对于 Redis 客户端。默认为空 {}。
- overwrite (bool) – 是否强制覆盖 语义会话索引。默认为 false。
提议的架构将支持构造的单个向量嵌入 从单个字符串中的 prompt 或 response 中。
add_message(message, session_tag=None)
将单个提示或响应插入会话内存。 时间戳与它相关联,以便以后可以对其进行排序 检索后按顺序排序。
- 参数:
- message (Dict [ str *,*str ]) – 用户提示或 LLM 响应。
- session_tag (可选 [ str ]) – 要添加到条目以链接到特定 会期。默认为实例 ULID。
- 返回类型:没有
add_messages(messages, session_tag=None)
将提示和响应列表插入会话内存。 时间戳与每个 Cookie 相关联,以便以后可以对其进行排序 检索后按顺序排序。
- 参数:
- messages (List [ Dict [ str , str ] ]) – 用户提示和 LLM 响应的列表。
- session_tag (可选 [ str ]) – 要添加到条目以链接到特定 会期。默认为实例 ULID。
- 返回类型:没有
clear()
清除聊天会话历史记录。
- 返回类型:没有
delete()
清除所有对话键并删除搜索索引。
- 返回类型:没有
drop(id=None)
从对话历史记录中删除特定交流。
- 参数:id (Optional [ str ]) – 要删除的会话条目的 ID。 如果为 None,则删除最后一个条目。
- 返回类型:没有
get_recent(top_k=5, as_text=False, raw=False, session_tag=None)
按顺序检索最近的对话历史记录。
- 参数:
- top_k (int) – 要返回的先前交换的数量。默认值为 5。
- as_text (bool) – 是否将对话作为单个字符串返回, 或交替提示和响应的列表。
- raw (bool) – 是返回完整的 Redis 哈希条目,还是仅返回 提示和响应
- session_tag (可选 [ str ]) – 要添加到条目以链接到特定 会期。默认为实例 ULID。
-
- 返回:
- 会话的单个字符串转录
- 或 list of strings 如果 as_text 为 false。
- 返回类型:联合 [str, 列表[str]]
- 引发: ValueError – 如果 top_k 不是大于或等于 0 的整数。
get_relevant(prompt, as_text=False, top_k=5, fall_back=False, session_tag=None, raw=False, distance_threshold=None)
在聊天历史记录中搜索语义相关的信息 指定的提示符。
此方法使用向量相似性搜索,并带有文本提示作为输入。 它检查语义相似的提示和响应,并获取 前 k 个最相关的先前提示或响应,包括 context 添加到下一个 LLM 调用。
- 参数:
- prompt (str) – 要在会话内存中搜索的消息文本
- as_text (bool) – 是否以文本形式返回提示和响应
- JSON(或作为)
- top_k (int) – 要返回的先前消息的数量。默认值为 5。
- session_tag (可选 [ str ]) – 要添加到条目以链接到特定 会期。默认为实例 ULID。
- distance_threshold (Optional [ float ]) – 语义的阈值 vector distance 的 Vector distance 进行匹配。
- fall_back (bool) – 是否回退到最近的对话历史记录 如果未找到相关上下文。
- raw (bool) – 是返回完整的 Redis 哈希条目,还是仅返回 消息。
- 返回:字符串列表或 JSON 中包含最相关的提示和响应列表。
- 返回类型:联合[列表[str], 列表[Dict[str,str]]
引发 ValueError:如果 top_k 不是大于或等于 0 的整数。
store(prompt, response, session_tag=None)
将 prompt:response 对插入会话内存。时间戳 与每条消息相关联,以便以后可以对其进行排序 检索后按顺序排序。
- 参数:
- prompt (str) – LLM 的用户提示。
- response (str) – 相应的 LLM 响应。
- session_tag (可选 [ str ]) – 要添加到条目以链接到特定 会期。默认为实例 ULID。
- 返回类型:没有
property messages: List[str] | List[Dict[str, str]]
返回完整的聊天历史记录。
StandardSessionManager (标准会话管理器)
class StandardSessionManager(name, session_tag=None, prefix=None, redis_client=None, redis_url='redis://localhost:6379', connection_kwargs={}, **kwargs)
基地:BaseSessionManager
初始化会话内存
Session Manager 存储当前和以前的用户文本提示和 LLM 响应,以允许使用 session 丰富未来的提示 上下文。会话历史记录存储在单个用户或 LLM 提示符中,并且 反应。
- 参数:
- name (str) – 会话管理器索引的名称。
- session_tag (可选 [ str ]) – 要添加到条目以链接到特定 会期。默认为实例 ULID。
- prefix (Optional [ str ]) – 此会话数据的键的前缀。 默认为 None ,并将替换为索引名称。
- redis_client (Optional [ Redis ]) – 一个 Redis 客户端实例。默认为 没有。
- redis_url (str , optional) – redis url。默认为 redis://localhost:6379。
- connection_kwargs (Dict [ str , Any ]) – 连接参数 对于 Redis 客户端。默认为空 {}。
提议的架构将支持单个组合向量嵌入 由提示和响应构成的单个字符串。
add_message(message, session_tag=None)
将单个提示或响应插入会话内存。 时间戳与它相关联,以便以后可以对其进行排序 检索后按顺序排序。
- 参数:
- message (Dict [ str *,*str ]) – 用户提示或 LLM 响应。
- session_tag (可选 [ str ]) – 要添加到条目以链接到特定 会期。默认为实例 ULID。
- 返回类型:没有
add_messages(messages, session_tag=None)
将提示和响应列表插入会话内存。 时间戳与每个 Cookie 相关联,以便以后可以对其进行排序 检索后按顺序排序。
- 参数:
- messages (List [ Dict [ str , str ] ]) – 用户提示和 LLM 响应的列表。
- session_tag (可选 [ str ]) – 要添加到条目以链接到特定 会期。默认为实例 ULID。
- 返回类型:没有
clear()
清除聊天会话历史记录。
- 返回类型:没有
delete()
清除所有对话键并删除搜索索引。
- 返回类型:没有
drop(id=None)
从对话历史记录中删除特定交流。
- 参数:id (Optional [ str ]) – 要删除的会话条目的 ID。 如果为 None,则删除最后一个条目。
- 返回类型:没有
get_recent(top_k=5, as_text=False, raw=False, session_tag=None)
按顺序检索最近的对话历史记录。
- 参数:
- top_k (int) – 要返回的先前消息的数量。默认值为 5。
- as_text (bool) – 是否将对话作为单个字符串返回, 或交替提示和响应的列表。
- raw (bool) – 是返回完整的 Redis 哈希条目,还是仅返回 提示和响应
- session_tag (可选 [ str ]) – 要添加到条目以链接到特定 会期。默认为实例 ULID。
-
- 返回:
- 会话的单个字符串转录
- 或 list of strings 如果 as_text 为 false。
- 返回类型:联合 [str, 列表[str]]
- 引发: ValueError – 如果 top_k 不是大于或等于 0 的整数。
store(prompt, response, session_tag=None)
将 prompt:response 对插入会话内存。时间戳 与每个交易所相关联,以便以后可以对其进行排序 检索后按顺序排序。
- 参数:
- prompt (str) – LLM 的用户提示。
- response (str) – 相应的 LLM 响应。
- session_tag (可选 [ str ]) – 要添加到条目以链接到特定 会期。默认为实例 ULID。
- 返回类型:没有
property messages: List[str] | List[Dict[str, str]]
返回完整的聊天历史记录。