1. 简单介绍
我们可以使用Azure AI Search作为向量的存储库,同时Azure AI Search也提供了keyword search, vector search和Hybrid search等功能。在Azure AI Search中有Index,Indexer, Skillset, Scale, Semantic Ranker等概念,具体的内容可以参考微软的mslearn文章。
这边将尝试去创建一个Azure AI Search并以Rag的方式使用一下
2. Azure AI Search
2.1 创建Azure AI Search
- 在Azure portal 的Azure AI Foundry界面中,选择左侧的AI Search菜单,然后点击Create按钮,

- 在Create a search service界面中,选择subscription和pricing tier,同时设定search name,

note, 不同的pricing tier对应不同的capacity,费用也不同的。
- 最后在review界面中,点击create按钮,

4)最后创建成功
2.2 配置Azure AI Search
- 在Azure AI Search界面中,点击import data(new)按钮,

- 在Choose a data source界面中,选择Azure Blob Storage选项,

- 点击RAG选项,如下图所示,

- 在Connect to your data 界面中,选择Storage account和Blob container

note, 这边假定已经创建了一个Azure blob storage,用于存放resumes,

- 在Vectorize your text界面,选择Azure OpenAI service和embeding model,这边在Authentication type中选择的是API key,

- 下面的界面没有设置值,当前这边没有用的OCR等Azure AI Skillset,

- 在Advance settings中,选择Enable semantic ranker

- 在review and create界面中,点击Create按钮,

- 弹出如下界面,表示创建成功了,

- 在创建的Azure AI Search index 的 Fields界面中,发现有vector field 产生,

- 在Search explorer中,直接点击Search按钮,发现有内容返回

2.3 记录配置信息
创建好Azure AI Search之后,需要记录一下Azure AI Search对应的endpoint和key,
- Endpoint信息,
- key信息,

3. 制作Custom Engine Agent
3.1 创建项目
- 假定在VSCode中已经安装了Microsoft 365 Agents Toolkit,以前的名字是Teams Toolkit,

- 创建了一个Custom Engine Agent,

- 选择 Basic AI Chatbot,

- 选择Typescript语言,

- 配置Azure Open AI key, endpoint等信息

- 最后创建了一个Custom Agent,如下图所示,

7)定制项目并配置Azure AI Search的endpoint, key, index name, embeding model等信息,

3.2 运行项目
- 在VSCode的项目中,点击RUN AND DEBUG下拉框,选择Debug in Teams(Desktop)并运行,

- 启动项目的过程中会弹出下面的提示窗,点击Continue按钮,

- 在弹出的如下Teams App窗口中,点击Add按钮,

- 在下面的界面中,点击Open按钮,

- 最后输入想提问的问题,bot会通过Azure AI Search的vector search进行内容检索,并将检索结果提供给Azure Open AI作为上下文, 最后返回内容给bot同时bot返回内容给用户,如下图所示,


4. 总结
本文记录了一下创建Azure AI Search并以RAG的方式来使用Azure AI Search的过程。在别的Vector storage中也有和Azure AI Search对应的概念的,比如Qdrant中Collection对应的是AI Search中的Index,Payload对应的是Fields等。不过相对其他的RAG解决方案,Azure AI Search的可拓展性可能比较强一些,支持partion和replicas的两种拓展方式。更加详细的内容,还可以参考微软的mslearn文章。
本文如果哪里有错误,麻烦告之,谢谢谢谢!