探索Eden AI与LangChain的无缝集成:解锁强大AI嵌入功能
引言
随着人工智能的迅速发展,开发者面临的一个主要挑战是如何高效地利用各种AI模型。Eden AI通过统一多家顶级AI提供商,为用户提供了一个简便的多合一平台。这篇文章将介绍如何使用LangChain与Eden AI嵌入模型进行交互,从而轻松实现丰富的AI功能。
主要内容
1. 获取API密钥
要使用Eden AI的API,首先需要在Eden AI官网注册一个账户并获取API密钥。之后,将密钥设置为环境变量:
export EDENAI_API_KEY="your_api_key"
如果您不希望使用环境变量,也可以在初始化EdenAI嵌入类时直接传入密钥:
from langchain_community.embeddings.edenai import EdenAiEmbeddings
embeddings = EdenAiEmbeddings(edenai_api_key="your_api_key", provider="...")
2. 调用模型
Eden AI的API汇集了多个提供商的模型,您可以通过设置provider参数来指定特定的模型,例如:
embeddings = EdenAiEmbeddings(provider="openai")
3. 嵌入文档和查询
接下来,我们将进行文档和查询的嵌入:
docs = ["It's raining right now", "cats are cute"]
document_result = embeddings.embed_documents(docs)
query = "my umbrella is broken"
query_result = embeddings.embed_query(query)
4. 计算余弦相似度
使用NumPy计算文档和查询之间的余弦相似度:
import numpy as np
query_numpy = np.array(query_result)
for doc_res, doc in zip(document_result, docs):
document_numpy = np.array(doc_res)
similarity = np.dot(query_numpy, document_numpy) / (
np.linalg.norm(query_numpy) * np.linalg.norm(document_numpy)
)
print(f'Cosine similarity between "{doc}" and query: {similarity}')
代码示例
下面是完整的代码示例:
from langchain_community.embeddings.edenai import EdenAiEmbeddings
import numpy as np
# 使用API代理服务提高访问稳定性
embeddings = EdenAiEmbeddings(edenai_api_key="your_api_key", provider="openai")
docs = ["It's raining right now", "cats are cute"]
document_result = embeddings.embed_documents(docs)
query = "my umbrella is broken"
query_result = embeddings.embed_query(query)
query_numpy = np.array(query_result)
for doc_res, doc in zip(document_result, docs):
document_numpy = np.array(doc_res)
similarity = np.dot(query_numpy, document_numpy) / (
np.linalg.norm(query_numpy) * np.linalg.norm(document_numpy)
)
print(f'Cosine similarity between "{doc}" and query: {similarity}')
常见问题和解决方案
1. 网络访问问题
某些地区可能会遇到API访问受限的问题。建议使用API代理服务来提高访问的稳定性。
2. 模型选择
如果无法获得预期的结果,尝试更改provider参数来测试不同的模型。
总结和进一步学习资源
本文介绍了如何通过LangChain与Eden AI进行交互,以实现文档和查询的嵌入。使用Eden AI平台,您可以轻松扩展AI功能并快速部署到生产环境。
进一步学习
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---