你希望添加什么?
支持指定一个类似于pre_embedding_func
的处理器,它返回用于请求的系统提示的版本/唯一标签,并与缓存数据和嵌入数据一起存储。在搜索嵌入数据和获取最终缓存数据时,也应考虑此版本/唯一标签。
为什么需要这个?
我正在进行一个项目,根据手头的任务从同一用户提示中提取不同类型的信息。例如,一个API调用将用于识别用户意图,下一个API调用将用于使用上一个请求中识别的意图生成YAML。现在,在这个场景中,尽管两次用户提示的时间相同,但系统提示却不同。由于系统提示比用户提示大得多,因此在这种情况下需要为相似性评估设置非常高的阈值(缓存嵌入是针对组合的系统提示+用户提示文本计算的),这通常比仅对用户提示执行相似性评估要差得多。
还有其他问题吗?
- 无响应*
7条答案
按热度按时间7vux5j2d1#
你好,@transhapHigsn 你使用过很多不同的系统提示吗?
nfs0ujit2#
是的,通常我使用两套系统提示,并且这两套系统提示都有不同的响应结构定义。一套用于识别用户意图(有很多可以执行的操作,但我不能将所有这些信息包含在一个系统提示中,所以我采用了这种方法),另一套用于执行实际任务,即从用户提示生成YAML。
此外,还有修复系统提示中问题的情况。在这种情况下,我必须从向量数据库中删除所有内容,以确保它不会返回无效的模型响应。
编辑:
g9icjywg3#
我们为了解决这个问题,提出了使用基于目标的多个缓存示例的解决方案。这也是我能想到的一个临时方法。我将计划如何开发这个功能。
vfh0ocws4#
感谢您考虑这个问题。如果您能指导我如何开发,我很乐意在这里提供帮助。
lnlaulya5#
你好!我是Sweep的创始人之一,Sweep是一款GitHub应用,通过编写pull请求来解决问题。
这看起来是一个适合Sweep尝试的好问题。我们这里有入门指导,我也很乐意直接帮助你入门:)
lpwwtiir6#
嘿,我们遇到了一个类似的事情:
根据地区(locale),我们只有在用户发起请求时才知道这个信息,它是地区的一部分。我们需要动态地决定从qdrant获取哪个上下文(context)。每个地区都有自己显著不同的上下文,例如每个国家的税率。
对我们来说,理想的解决方案是能够动态地更改gptcache在qdrant中使用的集合名称。我很乐意帮助实现并分享我的发现。
iqjalb3h7#
对我们来说,理想的解决方案是能够动态地改变gptcache在qdrant中用于查找的collection_name。这类似于多个
cache
对象。当然,我也期待着您的实施计划。