目录
前言
在AI系列:大语言模型的function calling(上) 中我们实现了OpenAI原生的function calling。这篇文章将继续探讨如何使用LangChain
实现大语言模型(LLM)的function calling。
LangChain Tool/Function calling
LangChain提供了对LLM function calling的支持。前提是底层大模型必须支持function calling。
1. Tool/function加强功能
LangChain的tool装饰器
LangChain在langchain_core
模块中的tools
子模块中提供了名为tool
的装饰器,将根据函数定义和注释自动生成不同LLM function calling功能需要的schema
,然后传递给LLM。后续对于LLM的调用将包括这些function/tool schema。
在Python中可以通过下面这种方式为自己定义的函数导入tool装饰器:
from langchain_core.tools import tool
@tool
def multiply(first_int: int, second_int: int) -> int:
"""两个整数相乘"""
return first_int * second_int
@tool
def add(first_add: int, second_add: int) -> int:
"""两个整数相加"""
return first_add + second_add
tools=[multiply, add]
其他方式: Pydantic
除了tool解释器,LangChain还支持用Pydantic
来定义schema的方式。比如:
from langchain_core.pydantic_v1 import BaseModel, Field
# 注释很重要,会被用来生成schema。
class Add(BaseModel):
"""Add two int