Thực thi gọi hàm trong LangChain (tiếp tục)
5. Luận lí nhiều bước: thực thi một hệ thống nơi LLM có thể chia ra các truy vấn phức tạp thành nhiều lời gọi hàm,
móc xích chúng cùng với nhau để đi đến một kết quả cuối cùng.
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain
reasoning_prompt = PromptTemplate(input_variables=[“query”, “available_functions”],
template=”Query: {query}\nAvailable functions: {available_functions}\nBreak down the steps needed to answer this query using the available functions.”)
reasoning_chain = LLMChain(llm=llm, prompt=reasoning_prompt)
def multi_step_function_calling(query, available_functions):steps = reasoning_chain.run(query=query, available_functions=available_functions)
# Implement logic to execute each step and aggregate results
return stepsquery = “What’s the price difference between Apple and Microsoft stocks over the last month?”
available_functions = [“get_stock_price”, “calculate_percentage_change”, “get_date_range”]
execution_plan = multi_step_function_calling(query, available_functions)
output:
Step 1: Use the get_date_range function to get the date range of the last month.
Step 2: Use the get_stock_price function to get the stock prices of Apple and Microsoft on the starting and ending dates of the last month.
Step 3: Calculate the percentage change of Apple and Microsoft stocks using the calculate_percentage_change function.
Step 4: Subtract the percentage change of Apple from the percentage change of Microsoft to find the price difference between the two stocks.
Step 5: Print or display the result to the user.
Code này tạo một cơ chế gọi hàm nhiều bước sử dụng LangChain. Phương thức gọi hàm nhiều bước sử dụng một xích LLM
để chia ra một truy vấn thành các bước thực thi bằng cách phân tích các hàm có sẵn, khởi tạo một kế hoạch thực thi
tiềm tàng cho các truy vấn phức tạp như so sánh các stock prices.
Các thực hành tốt nhất cho gọi hàm trong LangChain
+ Các mô tả hàm rõ ràng: Cung cấp các mô tả rõ ràng và chi tiết cho mỗi hàm để giúp LLM hiểu khi nào và làm cách nào
sử dụng chúng.
+ Type checking và hiệu lực hóa: Thực thi type checking và hiệu lực hóa đầu vào nghiêm ngặt cho các tham số hàm để
ngăn chặn các lỗi và hành vi không mong đợi.
+ Xử lí lỗi thanh thoát: Thiết kế các hàm của bạn để xử lí các lỗi tiềm tàng thanh thoát và cung cấp các thông điệp
lỗi thông tin cái LLM có thể biên dịch và hành động trên.
+ Phiên bản hóa: Thực thi một hệ thống đánh phiên bản cho các hàm của bạn để quản lí các thay đổi theo thời gian
và đảm bảo tính tương thích với các phiên bản LLM khác nhau.
+ Giám sát và ghi lại: Thiết lập giám sát và ghi lại sâu rộng cho các gọi hàm để theo dấu các mô hình sử dụng, nhận
dạng các vấn đề tiềm tàng, và tối ưu hóa hiệu suất.
+ Các xem xét an ninh: Thực thi các biện pháp an ninh đúng đắn, như làm sạch đầu vào và kiểm soát truy cập, đặc biệt
khi làm việc với các hoạt động hay dữ liệu nhạy cảm.
Cải tiến tiếp tục: Định kì phân tích hành vi gọi hàm của LLM và cái nhìn bên trong sử dụng đê tinh chỉnh các định
nghĩa hàm và cải thiện hiệu suất hệ thống tổng thể.
Trong học phần này, chúng ta đã khám phá các khối xây dựng lõi của LangChain applicationsChains, Prompt Templates,
và Tools. Bạn đã học làm cách nào cấu trúc các dòng làm việc sử dụng các xích, biên tập các prompts hiệu quả, và
tích hợp cả các công cụ tích hợp và tùy chỉnh với logic lựa chọn thông minh. Các bộ phận này hình thành nền tảng
của bất cứ hệ thống dựa trên LangChain mạnh mẽ nào.
