所以当抹布真正流行起来时，就像我猜一年前，一年半前，就变成了这样
家庭手工业的抹布技术，你可以做的事情，涉及抹布以使其变得更好。
许多术语都是围绕这些技术发展起来的。
有很多不同的术语和词语，它们听起来都非常科学。
在我看来，这有点伪科学。
我确实想向你澄清这一点。
我认为这些术语试图将一些非常老套、非常非常的东西形式化。
实验性的。
有点尝试这个，尝试重做这个，并尝试组织这一切来解决这个问题
我提到过的痣，就是你做了某事但效果不太好。
你会想，好吧，让我们尝试一下，让我们以不同的方式进行分块。
让我们以不同的方式来做这件事。
让我们尝试一下不同的做法。
他们每个人都是不同的实验。
我经常收到学生的提问，这些不同的抹布技术中哪一种
适用于我吗？
我应该尝试哪一个？
你知道人们喜欢说，在这个行业里，不存在糟糕的问题，
所有问题都是好问题。
但我来这里是想告诉你，不，我不是那些人中的一员。
我认为这是一个糟糕的问题。
我会这么说，因为正如你所知，我会说这是一个糟糕的问题，因为没有
神奇的答案。
我不能告诉你重新排名就是你所需要的，或者你需要这个编码器或类似的东西。
答案是设置一个指标，设置你的评估，运行实验，然后发现没有捷径
实验。
这些。
这是伪科学。
这些不像真正的建筑或类似的东西。
这些只是不同的实验性尝试，不同类型的业务用例和不同的
使用不同的技术，数据集往往会做得更好。
并且，您唯一能做的就是尝试并使用评估来查看和测试它。
因此，我将简要介绍十种技巧。
毫无疑问，我不会提及您最喜欢的一些技术。
别因此而恨我。
您可以通过 Google 搜索或查找其中任何一个。
它们都是从同一块布上剪下来的。
其中很多。
但第一个是你已经知道的。
我们已经做到了，这是对分块的研发，尝试不同的分块策略。
例如，如果你看一下朗格，在我们正在玩的那个包中，有很多不同的
文本拆分器的类型，有时称为拆分器，有时称为分块器。
你可以和他们一起玩。
它们有不同的参数变化，改变你使用的参数并改变参数和
现在进行实验是一件很棒的事情。
当你这样做时，如果你不只是猜测，那总是好的，即使我将其描述为
就像反复试验一样，但你是以一种明智的方式这样做的。
就像通常你会发现一些不适合你的抹布工艺的东西，那就是
导致错误的答案。
然后你尝试改变你的分块策略来解决这个问题。
您还可以在一定程度上进行研发探索，尝试不同的事情
看看会发生什么。
但有一个特定的问题或一个你想要解决或改进的假设通常是件好事
通过改变分块，然后你可以测量它并看看会发生什么。
所以这与分块研发非常相似。
您可能知道我会说编码器根据您的测试选择最佳编码器模型
设定并基于您的业务目标。
人们经常问我有关图像的问题。
你经常想用知识库提出问题，而不仅仅是文本，
它还有图像。
并且有不同的策略。
确实有一些编码器擅长获取图像和文本并将它们映射到一致的
向量空间，你会在句子转换器中找到它们。
如果你看他们的文档和拥抱脸，你会发现他们有专门设计的模型
为此。
但我不得不说，我，我确实倾向于找到它们，呃，碰碰运气。
还有一种不同的、更无聊的策略，你首先使用模型来编写
某事，以最有可能成为问题的方式为图像编写标题
会匹配的。
然后你对该文本进行矢量化，因为你更有可能能够映射图像
在我看来，找到正确的查询，然后对其进行查询。
但这实际上取决于用例。
当然，你不应该相信我的意见。
你应该尝试一下，看看这是否是你正在做的事情。
因此，使用编码器来尝试不同类型的文档，呃，这是高级的重要组成部分
抹布工具包。
所以我在这里还要再说一件事。
人们经常问我有关 PDF 和 Word 文档之类的问题，好吧，
那么我们如何对其进行矢量化呢？
呃，我可能会再说一遍同样的话。
呃，我想说，首先，有一些模型是注定的，例如，
擅长，呃，尝试对 PDF 进行编码，但我不推荐它，因为它是一个二进制对象，并且
它不是为此而设计的。
我想说的是，使用将 PDF 转换为 markdown 的东西，然后对 markdown 进行矢量化，
这是模型接受大量训练的东西。
你知道吗？
我不会使用法学硕士将 PDF 转换为 Markdown。
这是对 LLM 的可怕滥用。
这不是他们擅长的。
你知道 Python 代码有什么好处吗？
请记住，我们曾经是软件开发人员。
您可以通过 pip 安装或在我们的案例中添加大量库，这些库非常适合
解析 PDF，您可以将它们转换为 Markdown 或仅转换为文本或任何有意义的内容
适合您的业务案例。
不同文件格式之间的转换是一个已解决的问题。
你不需要人工智能来为你做这件事。
您可以使用 Python 来完成。
所以你应该这样做。
这就是我的建议。
在这种情况下，如果您有不同的文件格式，我建议使用软件将其转换为
对于法学硕士来说会很有效，有可能通过法学硕士将其转化为某种东西
这对于查询非常有用，然后将其转换为向量。
好的。
关于编码器就足够了。
让我们继续吧。
接下来是一个明显的问题，听起来确实是在按照提示进行操作。
听起来太明显了，甚至不能作为一种先进技术在这里提及，但它确实有很大的不同。
人们在钻研许多听起来很复杂的方法时常常会忽略显而易见的事情。
但请记住，这块内容是为了提供相关的上下文，而且通常是静态的、相关的
您可以将其放入每个提供基本信息的提示中。
而且每次浪费几百个代币什么的也没什么关系。
这并不是一笔大数目的钱，尤其是如果它能让你建立良好的联系的话。
因此，开发良好的提示，您可以将其视为固定的上下文，并执行以下标准技巧
确保将当前日期放在那里。
为什么不呢？
如果这能以某种方式帮助它理解你在说什么，任何相关的上下文
和对话历史记录并正确处理，只需按照提示进行操作就可以做出这样的
不同之处。
这并不是一项先进的技术，但却是人们经常忘记的。
好吧，这是一项先进的技术。
因此，请对此进行文档预处理。
这是说，好吧，当我们拿走我们的文件并准备将它们放在一起时
进入我们的矢量数据存储，也许首先我们可以以这样的方式重写我们的文档
将使它们更适合数据存储。
例如，如果我们有一张从一个地点到另一个地点旅行的票价表，
它就像一张数字表。
当你把它变成一个向量时，它不会很好，因为它就像，
这是一张数字表。
但如果你首先通过法学硕士并说，嘿，这是我知识库的一部分，可以
您以最适合查询的格式重写它？
然后它可以出色地将其转换为文本，这将与向量查找相匹配。
嗯，所以这真是一个很棒的技巧。
一个非常相似的事情是我实际上没有提到的第一件事，那就是当你分块时，
有一种称为语义分块的分块，即当您不仅仅基于相似的分块时
随机地将事物分成不同的部分，但基于每个块的含义
文本。
尝试以一种有意义的方式划分页面，从而使文档被分解
分成不同的部分，反映某人职业生涯的不同阶段或不同方面
产品或类似的东西。
因此，语义分块是一种非常强大的分块策略。
事实上，我认为有一个语义分块器，它是开箱即用的，带有 lang 链
实验包。
呃，但更简单的是作为第四部分的一部分，作为文档预处理的一部分，
通过法学硕士传递它并说，嘿，这是一份文件。
您能否将其分成有意义的块，从意义的角度来看是有意义的，
这样问题将与 1 或 2 个块相关，然后重写它们并以某种方式分割它们
这对于知识库来说是最好的。
所以这实际上是一和四的结合。
这是一项专业技术。
这就是文档预处理，有时也称为纪录片写作，这是真正的一件事。
有一个反面，称为查询重写，这几乎是同一件事。
当用户提出问题时，用户提出问题。
也许这个问题并不完全适合进行基于抹布的查找，或者可能指向一个问题
我们几天前面临的问题。
这个问题可能是之前问题的后续问题，并且要进行完全正确的查找，
你可能想以某种巧妙的方式将其与我们之前所说的结合起来。
而这对于代码来说确实很难做到。
但你猜怎么着？
LLMS 对此很轻松。
因此，使用法学硕士，致电法学硕士并说用户已经问过这个问题。
请以最适合查询知识库的方式重写此代码，并且它
可以做得很好。
您可以传递历史记录并让它做一些反映问题上下文的事情，如下所示
出色地。
这就是所谓的查询重写。
有时也称为查询预处理。
与文档预处理一起，这两者是一对强大的组合。