Azure - 尝试创建并使用一下Azure AI Search
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
1) 在Azure portal 的Azure AI Foundry界面中,选择左侧的AI Search菜单,然后点击Create按钮,
2) 在Create a search service界面中,选择subscription和pricing tier,同时设定search name,
note, 不同的pricing tier对应不同的capacity,费用也不同的。
3) 最后在review界面中,点击create按钮,
4)最后创建成功
2.2 配置Azure AI Search
1) 在Azure AI Search界面中,点击import data(new)按钮,
2) 在Choose a data source界面中,选择Azure Blob Storage选项,
3) 点击RAG选项,如下图所示,
4) 在Connect to your data 界面中,选择Storage account和Blob container
note, 这边假定已经创建了一个Azure blob storage,用于存放resumes,
5) 在Vectorize your text界面,选择Azure OpenAI service和embeding model,这边在Authentication type中选择的是API key,
6) 下面的界面没有设置值,当前这边没有用的OCR等Azure AI Skillset,
7) 在Advance settings中,选择Enable semantic ranker
8) 在review and create界面中,点击Create按钮,
9) 弹出如下界面,表示创建成功了,
10) 在创建的Azure AI Search index 的 Fields界面中,发现有vector field 产生,
11) 在Search explorer中,直接点击Search按钮,发现有内容返回
2.3 记录配置信息
创建好Azure AI Search之后,需要记录一下Azure AI Search对应的endpoint和key,
1) Endpoint信息,
2) key信息,
3. 制作Custom Engine Agent
3.1 创建项目
1) 假定在VSCode中已经安装了Microsoft 365 Agents Toolkit,以前的名字是Teams Toolkit,
2) 创建了一个Custom Engine Agent,
3) 选择 Basic AI Chatbot,
4) 选择Typescript语言,
5) 配置Azure Open AI key, endpoint等信息
6) 最后创建了一个Custom Agent,如下图所示,
7)定制项目并配置Azure AI Search的endpoint, key, index name, embeding model等信息,
3.2 运行项目
1) 在VSCode的项目中,点击RUN AND DEBUG下拉框,选择Debug in Teams(Desktop)并运行,
2) 启动项目的过程中会弹出下面的提示窗,点击Continue按钮,
3) 在弹出的如下Teams App窗口中,点击Add按钮,
4) 在下面的界面中,点击Open按钮,
5) 最后输入想提问的问题,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文章。
本文如果哪里有错误,麻烦告之,谢谢谢谢!