引言
在这篇文章中,我们将探讨如何使用IBM watsonx.ai与LangChain框架交互,通过WatsonxEmbeddings包装器连接IBM watsonx.aifoundation模型。我们将详细介绍如何设置和使用这些工具,以实现在自然语言处理任务中的应用。
主要内容
设置环境
首先,我们需要安装langchain-ibm
包:
!pip install -qU langchain-ibm
接下来,我们需要定义IBM Watson的WML凭证。请提供您的IBM Cloud用户API密钥。
import os
from getpass import getpass
watsonx_api_key = getpass("Enter your IBM Cloud API key: ")
os.environ["WATSONX_APIKEY"] = watsonx_api_key
您还可以通过环境变量传递额外的秘密信息:
os.environ["WATSONX_URL"] = "your service instance url"
os.environ["WATSONX_TOKEN"] = "your token for accessing the CPD cluster"
os.environ["WATSONX_PASSWORD"] = "your password for accessing the CPD cluster"
os.environ["WATSONX_USERNAME"] = "your username for accessing the CPD cluster"
os.environ["WATSONX_INSTANCE_ID"] = "your instance_id for accessing the CPD cluster"
加载模型
为了加载模型,您需要调整模型参数:
from ibm_watsonx_ai.metanames import EmbedTextParamsMetaNames
embed_params = {
EmbedTextParamsMetaNames.TRUNCATE_INPUT_TOKENS: 3,
EmbedTextParamsMetaNames.RETURN_OPTIONS: {"input_text": True},
}
初始化WatsonxEmbeddings
类,并提供适当的项目ID和服务实例URL:
from langchain_ibm import WatsonxEmbeddings
watsonx_embedding = WatsonxEmbeddings(
model_id="ibm/slate-125m-english-rtrvr",
url="https://us-south.ml.cloud.ibm.com", # 使用API代理服务提高访问稳定性
project_id="PASTE YOUR PROJECT_ID HERE",
params=embed_params,
)
使用模型
嵌入查询
text = "This is a test document."
query_result = watsonx_embedding.embed_query(text)
print(query_result[:5])
嵌入文档
texts = ["This is a content of the document", "This is another document"]
doc_result = watsonx_embedding.embed_documents(texts)
print(doc_result[0][:5])
常见问题和解决方案
-
网络访问问题:由于某些地区的网络限制,可能无法直接访问IBM Cloud服务。在这种情况下,建议使用API代理服务来提高访问稳定性。
-
错误处理:在初始化过程中,确保所有必需的环境变量和参数已正确设置。如果出现API访问错误,检查凭证和URL是否正确。
总结和进一步学习资源
WatsonxEmbeddings与LangChain结合提供了一种强大的方式来处理自然语言任务。通过本文所述的设置和使用方法,您可以开始构建自己的智能应用。
以下是一些推荐的进一步学习资源:
参考资料
- IBM watsonx.ai 文档
- LangChain GitHub项目
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—