Langchain 的操作很不一樣,我們今天來示範如何使用 Langchain 來做 embedding,並且插入 Qdrant 之中。大家會發現原理是相同的,只是程式寫法不太一樣,可以說是更簡潔了。
安裝 Langchain,使用指令 poetry add langchain
建立一個 python 檔 langchain_embedding.py
,然後貼上下面的程式碼。
import openai
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.vectorstores import Qdrant
OPENAI_EMBEDDING_DEPLOYMENT_NAME = "embedding-ada-002"
OPENAI_API_KEY = "yourkey"
openai.api_type = "azure"
openai.api_base = "https://japanopenai2023ironman.openai.azure.com/"
openai.api_version = "2023-03-15-preview"
embeddings = OpenAIEmbeddings(openai_api_key=OPENAI_API_KEY,
deployment=OPENAI_EMBEDDING_DEPLOYMENT_NAME,
openai_api_type="azure",
chunk_size=1)
text_array = ["我會披星戴月的想你,我會奮不顧身的前進,遠方煙火越來越唏噓,凝視前方身後的距離",
"而我,在這座城市遺失了你,順便遺失了自己,以為荒唐到底會有捷徑。而我,在這座城市失去了你,輸給慾望高漲的自己,不是你,過分的感情"]
doc_store = Qdrant.from_texts(
text_array, embeddings, url="http://localhost:6333", collection_name="Lyrics_Langchain")
question = "工程師寫程式"
docs = doc_store.similarity_search_with_score(question)
document, score = docs[0]
print(document.page_content)
print(f"\nScore: {score}")
可以看到我們就完成了把文字 embedding,然後插入到 Qdrant 之中了。尤其是 Qdrant.from_texts
這段,真的是簡化了不少。但是代價是如果你熟悉了原生的寫法,那麼你會花不少時間學習。但是只要知道原理,就很容易了。