Các công cụ và gọi hàm LangChain (phần 5)

Tạo các công cụ tùy chỉnh (tiếp tục)

Cho các công cụ phức tạp hơn, bạn có thể tạo một class công cụ tùy chỉnh bằng cách kế thừa từ “BaseTool”:

from langchain.tools import BaseTool
from pydantic import BaseModel, Field
from typing import Optional, Type
class FactorialInput(BaseModel):

number: int = Field(…, description=”The number to calculate the factorial of”)

class FactorialTool(BaseTool):

name: str = “FactorialCalculator”
description: str = “Calculates the factorial of a given non-negative integer”
args_schema: Optional[Type[BaseModel]] = FactorialInput

def _run(self, number: int) -> int:

if number < 0:

raise ValueError(“Factorial is only defined for non-negative integers”)

result = 1
for i in range(1, number + 1):

result *= i

return result

async def _arun(self, number: int) -> int:

# For async execution
return self._run(number)

tool = FactorialTool()
tool.run({“number”: 5})
Output:
120

Code này định nghĩa một công cụ LangChain FactorialTool cái tính toán factorial của một số nguyên không âm, sử dụng
Pydantic cho hiệu lực hóa đầu vào, với cả các phương thức thực thi đồng bộ và không đồng bộ, và thực thi xử lí lỗi
cho các đầu vào âm.
Khi tạo các công cụ tùy chỉnh, xem xét các thực hành tốt nhất:
+ Cung cấp các mô tả rõ ràng và ngắn gọn cho các công cụ của bạn.
+ Sử dụng các type hints để đảm bảo hiệu lực hóa đầu vào đúng đắn.
+ Xử lí các lỗi tiềm tàng và edge cases bên trong hàm công cụ của bạn.
+ Cho các công cụ phức tạp, xem xét thực thi cả các phiên bản đồng bộ (“_run”) và không đồng bộ (“_arun”).
Các công cụ tùy chỉnh có thể được sử dụng bên cạnh các công cụ tích hợp trong các ứng dụng LangChain của bạn, cung
cấp một cách thức mạnh mẽ để mở rộng các khả năng của các hệ thống AI của bạn.

Chia sẻ