AI Hunter
Member
Bạn cần viết một báo cáo về "Biến động giá Bitcoin trong tuần qua" hoặc "Các tính năng mới nhất của iPhone 16". Thay vì mất 30 phút tự Google, đọc từng trang web và tổng hợp, tại sao không giao việc đó cho AI?
Trong bài viết này, chúng ta sẽ xây dựng một AI Agent bằng Python. Nó khác biệt hoàn toàn với ChatGPT thông thường:
Chúng ta sẽ sử dụng bộ 3 công cụ quyền lực:
Cài đặt thư viện:
Dưới đây là đoạn code Python hoàn chỉnh. Tôi sử dụng `AgentType.OPENAI_FUNCTIONS` - đây là kỹ thuật hiện đại giúp AI biết chính xác khi nào cần dùng công cụ tìm kiếm.
Khi bạn nhập chủ đề (ví dụ: "iPhone 16 rumors"), bạn sẽ thấy trên màn hình hiện ra dòng chữ xanh (do lệnh `verbose=True`). Đó là lúc Agent đang suy nghĩ:
1. Thought: "Người dùng hỏi về iPhone 16. Mình không có dữ liệu này trong bộ nhớ. Mình cần dùng tool `duckduckgo_search`."
2. Action: Gửi từ khóa tìm kiếm lên DuckDuckGo.
3. Observation: Nhận về một loạt văn bản từ các trang web công nghệ.
4. Thought: "Đã có đủ thông tin. Bây giờ mình sẽ tóm tắt lại bằng tiếng Việt."
5. Final Answer: Trả về bài báo cáo hoàn chỉnh.
Để Agent này trở nên "bá đạo" hơn, bạn có thể:
Chúc bạn thành công với trợ lý nghiên cứu cá nhân của mình!
Trong bài viết này, chúng ta sẽ xây dựng một AI Agent bằng Python. Nó khác biệt hoàn toàn với ChatGPT thông thường:
- Chủ động: Biết tự lên Google tìm kiếm thông tin mới nhất (Real-time).
- Tự duy: Biết đọc nội dung, chắt lọc ý chính và loại bỏ tin rác.
- Làm việc: Tự động lưu kết quả thành file báo cáo cho bạn.
1. Chuẩn bị "Vũ khí"
Chúng ta sẽ sử dụng bộ 3 công cụ quyền lực:
- LangChain: Framework giúp kết nối "não bộ" AI với các công cụ bên ngoài.
- DuckDuckGo Search: Công cụ tìm kiếm miễn phí (không cần đăng ký API phức tạp như Google).
- OpenAI GPT: Bộ não xử lý và tổng hợp thông tin.
Cài đặt thư viện:
Python:
pip install langchain langchain-openai langchain-community duckduckgo-search
2. Triển khai Code (Full Source)
Dưới đây là đoạn code Python hoàn chỉnh. Tôi sử dụng `AgentType.OPENAI_FUNCTIONS` - đây là kỹ thuật hiện đại giúp AI biết chính xác khi nào cần dùng công cụ tìm kiếm.
Python:
import os
from langchain_community.tools import DuckDuckGoSearchRun
from langchain_openai import ChatOpenAI
from langchain.agents import initialize_agent, AgentType
# --- CẤU HÌNH API ---
# Hãy đảm bảo bạn đã có API Key của OpenAI
if "OPENAI_API_KEY" not in os.environ:
os.environ["OPENAI_API_KEY"] = "sk-YOUR_API_KEY_HERE"
def create_research_agent():
"""Khởi tạo AI Agent với công cụ tìm kiếm"""
# 1. Khởi tạo LLM (Bộ não)
# Dùng gpt-3.5-turbo để tiết kiệm, temperature=0 để thông tin chính xác
llm = ChatOpenAI(model="gpt-3.5-turbo", temperature=0)
# 2. Khởi tạo Công cụ (Tay chân)
# DuckDuckGo giúp tìm kiếm thông tin realtime trên internet
search_tool = DuckDuckGoSearchRun()
tools = [search_tool]
# 3. Tạo Agent (Người quản lý)
# AgentType.OPENAI_FUNCTIONS giúp AI thông minh hơn trong việc chọn công cụ
agent = initialize_agent(
tools,
llm,
agent=AgentType.OPENAI_FUNCTIONS,
verbose=True # Bật verbose để xem AI "suy nghĩ" gì
)
return agent
def save_report(topic, content):
"""Lưu kết quả ra file"""
filename = f"Bao_cao_{topic.replace(' ', '_')}.txt"
with open(filename, "w", encoding="utf-8") as f:
f.write(content)
print(f"\n✅ Đã lưu báo cáo vào file: {filename}")
def main():
agent = create_research_agent()
print("--- AI RESEARCH AGENT ---")
topic = input("Bạn muốn tôi nghiên cứu về vấn đề gì?: ")
# Tạo câu lệnh chi tiết (Prompt Engineering)
prompt = f"""
Hãy nghiên cứu về chủ đề: "{topic}".
1. Tìm kiếm các thông tin mới nhất trên internet.
2. Tổng hợp lại thành một bài báo cáo ngắn gọn, súc tích bằng Tiếng Việt.
3. Liệt kê các ý chính bằng gạch đầu dòng.
"""
print("\n🚀 Đang kích hoạt Agent... (Quá trình này có thể mất 10-20 giây)")
# Agent bắt đầu chạy
try:
response = agent.run(prompt)
# In kết quả
print("\n" + "="*40)
print("KẾT QUẢ NGHIÊN CỨU:")
print("="*40)
print(response)
# Lưu file
save_report(topic, response)
except Exception as e:
print(f"❌ Có lỗi xảy ra: {e}")
if __name__ == "__main__":
main()
3. Giải thích cơ chế hoạt động
Khi bạn nhập chủ đề (ví dụ: "iPhone 16 rumors"), bạn sẽ thấy trên màn hình hiện ra dòng chữ xanh (do lệnh `verbose=True`). Đó là lúc Agent đang suy nghĩ:
1. Thought: "Người dùng hỏi về iPhone 16. Mình không có dữ liệu này trong bộ nhớ. Mình cần dùng tool `duckduckgo_search`."
2. Action: Gửi từ khóa tìm kiếm lên DuckDuckGo.
3. Observation: Nhận về một loạt văn bản từ các trang web công nghệ.
4. Thought: "Đã có đủ thông tin. Bây giờ mình sẽ tóm tắt lại bằng tiếng Việt."
5. Final Answer: Trả về bài báo cáo hoàn chỉnh.
4. Mở rộng nâng cao
Để Agent này trở nên "bá đạo" hơn, bạn có thể:
- Đọc nội dung chi tiết: Hiện tại DuckDuckGo chỉ trả về đoạn trích (snippet). Bạn có thể tích hợp thêm tool
WebBaseLoaderđể Agent truy cập vào từng đường link và đọc toàn bộ bài viết. - Gửi Email: Thêm tool
Gmail APIđể sau khi viết báo cáo xong, Agent tự gửi email cho sếp của bạn.
Chúc bạn thành công với trợ lý nghiên cứu cá nhân của mình!
Bài viết liên quan