Đại lý được Cung cấp bởi Gemini Pro: Mở khóa Quy trình Đại lý với LangTrace
Khám phá cách Gemini Pro và LangTrace mở khóa các quy trình công việc chủ động cho các khả năng LLM nâng cao. Khám phá lập kế hoạch, sử dụng công cụ bên ngoài và truy vết cho các hệ thống AI sẵn sàng đưa vào sản xuất.
15 tháng 1, 2025
Mở khóa sức mạnh của các tác nhân được điều khiển bởi AI với mô hình thử nghiệm Gemini Pro. Khám phá cách mô hình ngôn ngữ tiên tiến này có thể tích hợp một cách liền mạch các công cụ và API bên ngoài để giải quyết các nhiệm vụ phức tạp, cung cấp các phản hồi toàn diện và được điều chỉnh. Khám phá lợi ích của phương pháp dựa trên tác nhân này và mở khóa các khả năng mới cho nội dung và quy trình công việc của bạn.
Đại lý là gì và hoạt động như thế nào?
Thiết lập môi trường
Tạo đường ống RAG
Thiết lập các công cụ
Tạo Đại lý
Tương tác với Đại lý
Kết luận
Đại lý là gì và hoạt động như thế nào?
Đại lý là gì và hoạt động như thế nào?
Một tác nhân (agent) cơ bản là một mô hình ngôn ngữ lớn (LLM) với các khả năng bổ sung, bao gồm:
-
Lập kế hoạch: Tác nhân có thể phân tách truy vấn của người dùng và đưa ra một kế hoạch toàn diện để giải quyết nó.
-
Công cụ/API bên ngoài: Tác nhân có quyền truy cập vào các công cụ hoặc API bên ngoài mà nó có thể sử dụng để thực hiện kế hoạch của mình.
-
Bộ nhớ: Tác nhân theo dõi vị trí của nó trong quá trình thực hiện kế hoạch và những bước bổ sung cần phải thực hiện.
Trong ví dụ được cung cấp, tác nhân sử dụng mô hình thử nghiệm Gemini 1.5 Pro làm LLM, và nó có quyền truy cập vào hai công cụ:
-
RAG (Retrieval-Augmented Generation): Đây là kho kiến thức của tác nhân, sử dụng bài báo "Attention is All You Need".
-
Tìm kiếm trên web: Tác nhân có thể tìm kiếm thông tin trên web để bổ sung kiến thức của mình.
Thiết lập môi trường
Thiết lập môi trường
Để bắt đầu, chúng ta cần cài đặt các gói cần thiết và thiết lập các khóa API cần thiết. Đây là cách chúng ta sẽ thực hiện:
-
Cài đặt các gói: Chúng ta sẽ cài đặt gói Google Generative AI, LangChain, Tavly Python (công cụ tìm kiếm của chúng tôi), FAISS (lưu trữ vector) và LangTrace Python SDK.
-
Nhập các gói: Chúng ta sẽ nhập bộ phân tách văn bản ký tự đệ quy, trình tải PDF, kết quả tìm kiếm Tavly và mô hình nhúng AI tạo hóa Google.
-
Thiết lập các khóa API:
- Khóa API Tavly: Bạn có thể nhận khóa API Tavly bằng cách nhấp vào liên kết "get API key" được cung cấp trong mô tả video.
- Khóa API Google: Bạn có thể nhận khóa API Google từ Google AI Studio của bạn.
- Khóa API LangTrace: Bạn sẽ cần tạo một tài khoản trên LangTrace, một nền tảng quan sát nguồn mở cho các ứng dụng LLM. Sau đó, bạn có thể nhấp vào "generate API key" để nhận khóa API của mình.
-
Thiết lập các biến môi trường: Chúng tôi sẽ thiết lập khóa API Tavly và khóa API LangTrace làm biến môi trường.
-
Xử lý lỗi: Nếu bạn thấy bất kỳ lỗi nào liên quan đến tích hợp LangSmith, đừng lo lắng về chúng. Chúng tôi chỉ quan tâm đến LangChain và tích hợp Gemini Pro tại thời điểm này.
Bây giờ chúng ta đã thiết lập môi trường, chúng ta có thể chuyển sang các bước tiếp theo để xây dựng tác nhân và tích hợp các công cụ cần thiết.
Tạo đường ống RAG
Tạo đường ống RAG
Để thiết lập một đường ống RAG cơ bản, trước tiên chúng ta cần tải tài liệu PDF sẽ phục vụ như cơ sở kiến thức của chúng ta. Trong trường hợp này, chúng tôi có tệp "transformers.pdf", chứa 12 trang nội dung.
Tiếp theo, chúng tôi sử dụng RecursiveCharacterTextSplitter
từ mô-đun langchain.text_splitter
để chia tài liệu thành các mảnh nhỏ hơn, mỗi mảnh có tối đa 500 token và chồng chéo 100 token. Điều này cho phép chúng tôi tạo tổng cộng 24 mảnh khác nhau có thể được sử dụng để truy xuất.
Chúng tôi sau đó tải mô hình nhúng AI tạo hóa Google, sẽ được sử dụng để tính toán các nhúng cho từng mảnh tài liệu. Các nhúng có kích thước 768.
Để lưu trữ các nhúng, chúng tôi sử dụng lưu trữ vector FAISS. Điều này cho phép chúng tôi thực hiện hiệu quả các tìm kiếm tương tự trên các mảnh tài liệu khi có một truy vấn được cung cấp.
Cuối cùng, chúng tôi tạo một công cụ RetrievalQA
có thể được tác nhân sử dụng để truy xuất thông tin liên quan từ cơ sở kiến thức. Công cụ được cấu hình với bộ truy xuất FAISS và một mô tả cho biết nó hữu ích để truy xuất thông tin liên quan đến bài báo "Attention is All You Need".
Với cài đặt này, tác nhân sẽ có thể sử dụng đường ống RAG để tìm và truy xuất thông tin liên quan khi trả lời các câu hỏi về transformers và các chủ đề liên quan.
Thiết lập các công cụ
Thiết lập các công cụ
Để thiết lập các công cụ cho tác nhân của chúng ta, trước tiên chúng ta cần cài đặt các gói cần thiết:
1# Cài đặt các gói cần thiết 2!pip install google-generative-ai langchain tavlpy faiss-cpu langtracing
Tiếp theo, chúng ta nhập các mô-đun cần thiết và thiết lập các khóa API cho các dịch vụ khác nhau mà chúng ta sẽ sử dụng:
1import os 2from langchain.document_loaders import PyPDFLoader 3from langchain.text_splitter import RecursiveCharacterTextSplitter 4from langchain.embeddings.openai import OpenAIEmbeddings 5from langchain.vectorstores import FAISS 6from langtracing.sdk.python import LangTracer 7 8# Thiết lập khóa API Tavly 9TAVLY_API_KEY = os.environ.get("TAVLY_API_KEY") 10 11# Thiết lập khóa API LangTrace 12LANGTRACING_API_KEY = os.environ.get("LANGTRACING_API_KEY")
Chúng tôi sau đó thiết lập đường ống RAG (Retrieval Augmented Generation) bằng cách tải tài liệu PDF, chia nó thành các mảnh và tạo các nhúng và lưu trữ vector:
1# Tải tài liệu PDF 2loader = PyPDFLoader("transformers.pdf") 3documents = loader.load() 4 5# Chia tài liệu thành các mảnh 6text_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=100, length_function=len) 7chunks = text_splitter.split_documents(documents) 8 9# Tạo các nhúng và lưu trữ vector 10embeddings = OpenAIEmbeddings() 11vector_store = FAISS.from_documents(chunks, embeddings)
Cuối cùng, chúng ta tạo hai công cụ mà tác nhân của chúng ta sẽ có quyền truy cập: công cụ truy xuất và công cụ tìm kiếm:
1from langchain.agents import Tool 2 3# Tạo công cụ truy xuất 4retriever_tool = Tool( 5 name="retriever_tool", 6 description="Đối với bất kỳ thông tin nào liên quan đến kiến trúc transformers, hãy sử dụng công cụ này. Hữu ích để truy xuất thông tin liên quan đến bài báo Attention is all you need.", 7 func=lambda query: vector_store.similarity_search(query, k=3) 8) 9 10# Tạo công cụ tìm kiếm 11search_tool = Tool( 12 name="search_tool", 13 description="Một công cụ tìm kiếm được tối ưu hóa để có kết quả toàn diện, chính xác và đáng tin cậy. Hữu ích khi bạn cần trả lời các câu hỏi về các sự kiện hiện tại. Đầu vào nên là một truy vấn tìm kiếm.", 14 func=lambda query: Tavly(TAVLY_API_KEY).search(query) 15)
Với các công cụ được thiết lập, chúng ta đã sẵn sàng để tạo tác nhân và bắt đầu sử dụng nó để trả lời các câu hỏi.
Tạo Đại lý
Tạo Đại lý
Để tạo tác nhân, chúng ta sẽ sử dụng lớp tác nhân ReAct từ LangChain. Đây là một loại tác nhân đặc biệt có thể lập kế hoạch, có bộ nhớ và có quyền truy cập vào các công cụ mà chúng ta muốn nó sử dụng.
Trước tiên, chúng ta cần cung cấp một lời nhắc hoặc hướng dẫn chi tiết cho tác nhân để kiểm soát các công cụ và đưa ra một kế hoạch. LangChain cung cấp một mẫu cho việc này bằng cách sử dụng LangChain Hub, tương tự như Llama Index Hub.
Chúng tôi sẽ sử dụng mẫu ReAct và sửa đổi nó theo yêu cầu. Lời nhắc bao gồm những điều sau:
- Trả lời các câu hỏi sau đây tốt nhất có thể.
- Bạn có quyền truy cập vào các công cụ sau:
- Công cụ truy xuất: Đối với bất kỳ thông tin nào liên quan đến bài báo "Attention is All You Need".
- Công cụ tìm kiếm: Một công cụ tìm kiếm được tối ưu hóa để có kết quả toàn diện, chính xác và đáng tin cậy. Hữu ích để trả lời các câu hỏi về các sự kiện hiện tại.
- Sử dụng định dạng sau:
- Câu hỏi đầu vào bạn phải trả lời.
- Quá trình suy nghĩ của bạn.
- Hành động cần thực hiện (tức là, sử dụng công cụ nào).
- Kết quả của công cụ.
- Câu trả lời cuối cùng.
Với lời nhắc này, chúng ta có thể tạo tác nhân ReAct:
1agent = ReActAgent( 2 name="Gemini 1.5 Pro", 3 tools=tools, 4 system_message=system_prompt 5)
Trong đó, tools
là danh sách các công cụ mà chúng tôi đã định nghĩa trước đó, và system_prompt
là lời nhắc mà chúng tôi đã tạo dựa trên mẫu ReAct.
Bây giờ, chúng ta có thể sử dụng AgentExecutor
để thực thi tác nhân và cung cấp cho nó các truy vấn:
1executor = AgentExecutor( 2 agent=agent, 3 tools=tools, 4 verbose=True 5) 6 7result = executor.run("What is the current weather in LA?") 8print(result)
Tác nhân sẽ trải qua quá trình suy nghĩ của mình, sử dụng các công cụ thích hợp và cung cấp câu trả lời cuối cùng. Bạn cũng có thể kiểm tra các dấu vết bằng cách sử dụng thư viện LangTrace để hiểu quá trình ra quyết định của tác nhân.
Tương tác với Đại lý
Tương tác với Đại lý
Tác nhân mà chúng ta đã thiết lập là một Tác nhân Phản ứng, có nghĩa là nó có thể lập kế hoạch, thực hiện các hành động và cập nhật trạng thái nội bộ của nó dựa trên kết quả của những hành động đó. Hãy xem chúng ta có thể tương tác với tác nhân này như thế nào.
Đầu tiên, chúng ta sẽ hỏi tác nhân một câu hỏi đơn giản về thời tiết hiện tại ở Los Angeles:
1question = "What is the current weather at LA?" 2result = agent.run(question) 3print(result)
Tác nhân trải qua quá trình suy nghĩ, quyết định sử dụng công cụ tìm kiếm để tra cứu thời tiết hiện tại, thực hiện tìm kiếm và sau đó cung cấp câu trả lời cuối cùng.
Câu hỏi thường gặp
Câu hỏi thường gặp