iT邦幫忙

2024 iThome 鐵人賽

DAY 20
0
生成式 AI

LLM 應用、開發框架、RAG優化及評估方法 系列 第 20

Day20 GAI爆炸時代 - LangChain Retriever介紹

  • 分享至 

  • xImage
  •  

不知不覺,已經來到第20天了!
前面已經了解LangChain基本語法與如何跟Vector DB串接起來
接下來要討論的就是如何去檢索到資料囉!
傳統上,Naive RAG的做法都是根據user query轉成embedding後,
進入到 Vector DB 後,去匹配出相關的top k個chunk,再連同user query一同餵給LLM來去生成出回答。

那我們現在要如何根據user query去找到存在vector DB中相關的chunk呢
就要透過我們LangChain框架中的retriever啦!

但在我們創建一個retriever前,我們必須要先知道這個東西是甚麼!

vector store

負責嵌入embedding和vector search,常作為retriever的骨幹,通常都是透過vector store去使用裡面的retriever,所以我們必須先設定好vector store。

https://ithelp.ithome.com.tw/upload/images/20240817/20168537j2fSN29Jtb.png

  • 程式碼範例
vector_store = MongoDBAtlasVectorSearch(
    collection=collection,
    embedding=aoai_embeddings,
    index_name=vector_search_index,
    text_key="content" #這裡需要指定document文字的key。經過similarity找到相似的document後,會返回這個key的值
)

注意:

  1. index_name: 必須先在Atlas 的search index定義好才可使用

Retriever

接受字串 query 作為input,並傳回 Document 清單作為output
而官方提供了許多 retriever 的方法

  • Vector store-backed retriever
  • MultiQueryRetriever
  • Contextual compression
  • Custom Retriever
  • Ensemble Retriever
  • Long-Context Reorder
  • MultiVector Retriever
  • Parent Document Retriever
  • Self-querying
  • Time-weighted vector store retriever

下一回將詳細介紹這些retriever的使用方法與意義!


上一篇
Day19 GAI爆炸時代 - MongoDB Atlas 介紹
下一篇
Day21 GAI爆炸時代 - Retriever 方法詳細介紹
系列文
LLM 應用、開發框架、RAG優化及評估方法 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言