- Nhóm Node.js của Red Hat đang thử nghiệm các cách tích hợp LLM với Node.js và TypeScript/JavaScript
- So sánh nhiều framework khác nhau, đặc biệt tập trung xem xét cách gọi tool/function và cơ chế hoạt động của agent
- Phân tích tính năng của Llama Stack vừa ra mắt gần đây và khả năng tích hợp với Node.js
Cách thiết lập và chạy Llama Stack
- Llama Stack là một framework mô-đun phân phối nhiều implementation khác nhau với mục tiêu chuẩn hóa API
- Khi dùng container dựa trên Ollama, đây là cách chạy dễ nhất
- Thiết lập máy chủ qua ví dụ script chạy:
- Mô hình:
meta-llama/Llama-3.1-8B-Instruct
- Cổng:
8321
- IP máy chủ Ollama:
10.1.2.38
- Cần chạy trước mô hình trong Ollama, đồng thời phải dùng ít nhất 1 lần mỗi ngày để giữ keepalive
- Có thể xem schema API và thử nghiệm tương tác qua endpoint tài liệu (
/docs)
Ví dụ ứng dụng Node.js đầu tiên
- Sử dụng thư viện
llama-stack-client-typescript để giao tiếp với Llama Stack
- Định nghĩa hai tool:
favorite_color_tool: cung cấp thông tin màu sắc dựa trên thành phố/quốc gia
favorite_hockey_tool: cung cấp thông tin đội khúc côn cầu trên băng dựa trên thành phố/quốc gia
- Kiểm thử luồng gọi tool thông qua một kịch bản câu hỏi
- Vấn đề ban đầu: khi tool không có đủ thông tin cần thiết thì không xuất ra lời nhắc dẫn dắt rõ ràng
- Cách khắc phục: chèn từ "assistant" vào thông điệp phản hồi để luồng hoạt động tự nhiên hơn
Cách Llama Stack xử lý lời gọi tool
- Khi dùng API
chatCompletion(), cần tự xử lý việc gọi tool
- Dùng hàm
handleResponse() để phát hiện yêu cầu tool và gửi lại kết quả dưới dạng message
tool_choice mặc định là "auto", nhưng nếu có tool thì hệ thống có xu hướng cố dùng chúng
- Quan sát thấy rằng ngay cả khi câu hỏi không liên quan đến tool, hệ thống vẫn có thể từ bỏ sau khi thử dùng tool và trả về dạng ‘không thể trả lời’
Thử nghiệm tích hợp MCP và Llama Stack
- Thông qua MCP(Model Context Protocol), có thể host tool trên máy chủ bên ngoài và chia sẻ với nhiều framework khác nhau
- Máy chủ MCP được bridge từ server dựa trên stdio sang dạng SSE thông qua Supergateway
- Sau khi đăng ký máy chủ MCP, có thể dùng agent API của Llama Stack để tự động gọi tool MCP
- agent API sẽ:
- Tự động xử lý trạng thái/quản lý message
- Framework tự thực hiện nội bộ luồng gọi tool
- Tuy nhiên, không thể xem trực tiếp log gọi tool mà chỉ xác nhận được phản hồi cuối cùng
Tận dụng MCP để truy cập môi trường cục bộ
- Có thể chạy máy chủ MCP trong môi trường cục bộ theo kiểu stdio rồi kết nối với Llama Stack
- Cần có mã để chuyển đổi JSON định nghĩa tool của máy chủ MCP sang định dạng tương thích với Llama Stack
- Có thể trả về kết quả tool trong luồng phản hồi của LLM thông qua
mcpClient.callTool()
- Nhờ đó có thể triển khai các kịch bản truy cập môi trường ứng dụng cục bộ thay vì máy chủ tập trung
Kết luận
- Đã thực hành tích hợp LLM và lời gọi tool với Llama Stack trong môi trường Node.js
- Cung cấp nhiều cách tiếp cận khác nhau: tool cục bộ, MCP từ xa và MCP cục bộ
- Đặc biệt đưa ra các ví dụ mã nguồn và luồng xử lý thực tế cho nhà phát triển JavaScript/TypeScript
- Là điểm khởi đầu hữu ích cho những ai muốn tích hợp LLM với Node.js trong thời gian tới
Tài liệu bổ sung
Chưa có bình luận nào.