gemini-embedding-2-preview 通过 Google GenAI SDK 的 embed_content() API 本地支持文本、图像、视频、音频和 PDF 输入。然而,LangChain 的 Embeddings 接口(embed_query / embed_documents)目前仅接受文本输入。LangChain 中的多模态嵌入支持计划在未来版本中推出。对于当前的多模态用例,请直接使用 Google GenAI SDK。
# Create a vector store with a sample textfrom langchain_core.vectorstores import InMemoryVectorStoretext = "LangChain is the framework for building context-aware reasoning applications"vectorstore = InMemoryVectorStore.from_texts( [text], embedding=embeddings,)# Use the vectorstore as a retrieverretriever = vectorstore.as_retriever()# Retrieve the most similar textretrieved_documents = retriever.invoke("What is LangChain?")# show the retrieved document's contentretrieved_documents[0].page_content
'LangChain is the framework for building context-aware reasoning applications'
from langchain_google_genai import GoogleGenerativeAIEmbeddingsfrom sklearn.metrics.pairwise import cosine_similarityquery_embeddings = GoogleGenerativeAIEmbeddings( model="gemini-embedding-2-preview", task_type="RETRIEVAL_QUERY")doc_embeddings = GoogleGenerativeAIEmbeddings( model="gemini-embedding-2-preview", task_type="RETRIEVAL_DOCUMENT")q_embed = query_embeddings.embed_query("What is the capital of France?")d_embed = doc_embeddings.embed_documents( ["The capital of France is Paris.", "Philipp likes to eat pizza."])for i, d in enumerate(d_embed): print(f"Document {i + 1}:") print(f"Cosine similarity with query: {cosine_similarity([q_embed], [d])[0][0]}") print("---")
Document 1:Cosine similarity with query: 0.7892893360164779---Document 2:Cosine similarity with query: 0.5438283285204146---