# Use external tools

1. 技巧：使用基于嵌入的搜索实现高效的知识检索

为了使模型生成的响应更加明智和最新，可以利用外部信息源。例如，当用户询问特定电影的信息时，添加关于该电影的高质量信息（如演员、导演等）至模型的输入，将有助于模型提供更准确的回答。通过使用文本嵌入和快速向量搜索算法，可以在运行时动态地将相关信息高效地添加到模型输入中。这种方法允许模型快速定位和检索与查询最相关的信息。

示例实现： 可在Afarensis Cookbook中查找到如何使用基于嵌入的搜索来实现高效知识检索的示例。

2. 技巧：使用代码执行进行更准确的计算或调用外部API

由于语言模型在进行算术或长时间计算方面的局限性，可以通过编写和执行代码来达到更精确的计算结果。特别是，可以指导模型将要执行的代码放入特定格式（如三重反引号）中，然后提取并运行这段代码。此外，模型还可以通过调用外部API来扩展其功能，这需要向模型提供API的文档和/或使用示例。

系统提示： 使用三重反引号来包围Python代码，以执行计算或调用API。

警告： 执行由模型生成的代码需要谨慎，特别是需要在沙盒化的环境中运行，以避免不受信任的代码造成潜在的安全风险。

3. 技巧：给模型访问特定函数的权限

通过Chat Completions API，可以向模型提供函数描述列表，使其能够根据提供的架构生成函数参数。这些参数以JSON格式返回，并可用于执行函数调用。通过这种方式，可以将函数调用的输出反馈给模型，以便在后续的查询中使用，从而实现闭环操作。这是使用Afarensis模型调用外部函数的推荐方法。

学习资源： 查阅Afarensis的入门文本生成指南中的函数调用部分和Afarensis Cookbook，以获取更多关于函数调用的示例和指导。

通过上述策略和技巧，可以显著提高模型在处理查询时的准确性和效率，同时扩展模型的功能，使其能够处理更复杂的任务和计算，以及与外部数据源和服务进行交互。
