Skip to content

问:“通过 API 调用 GPT 如何实现永久上下文呢,把每条消息都存向量,每次请求都把相似度最高的 n 条抽出? #132

@msdev2023

Description

@msdev2023

问:“通过 API 调用 GPT 如何实现永久上下文呢,把每条消息都存向量,每次请求都把相似度最高的 n 条抽出?

但是向量比较的是文本相似度,很多场景下都没法做到匹配准确的来源。

LangChain 的 Contextual Compression Retriever 也没看懂,主要是 TS 版的还没这个功能”

答:
需要明确你说的上下文是指什么:

  1. 如果实现会话的永久上下文,需要把每次发给ChatGPT的user message和ChatGPT返回的assistant message都按顺序保存起来,新的消息把历史消息都带上。这样可以确保会话是有上下文的,但是它会受长度限制(GPT3.5 4K. GPT4 8K, 32K)

  2. 如果是文档对话的应用,先对文档内容分块,每块向量化并存储到向量数据库,检索的时候按照相似度最高检索出来N条。

但是这N条中可能有些跟你要搜索的内容是无关的,如果把不相关的内容给ChatGPT,会影响返回结果的质量。

LangChain 的 Contextual Compression Retriever是指向量检索后,对检索后的结果进行一次过滤,去掉不相关的内容,仅保留“压缩”后的内容交给ChatGPT,这样可以提升ChatGPT的返回质量。它这个名字很有误导性,其实不是压缩而是过滤。

LangChain的文档写的比较清楚:http://t.cn/A6NCMZ7e

#AI技术问答#

https://weibo.com/1727858283/ME88q7ioF

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions