Tạo Ứng Dụng Agent Tự Nghiên Cứu
Hôm nay, chúng ta sẽ xây dựng dự án lớn đầu tiên – một Deep Research Agent.
Đây là một trong những ứng dụng kinh điển của Agentic AI – nơi agent sẽ:
-
Tự động tìm kiếm thông tin trên Internet
-
Đọc các nguồn liên quan
-
Tổng hợp và tóm tắt thông tin
Mục tiêu của dự án
Tạo một AI Agent có khả năng:
-
Nhận một từ khóa nghiên cứu
-
Tìm kiếm trên web thông qua công cụ
web-search
được OpenAI cung cấp -
Tổng hợp nội dung từ các nguồn
-
Trả về bản tóm tắt ngắn gọn (2–3 đoạn)
Công cụ cần chuẩn bị
-
Python 3.10+
-
Jupyter Notebook hoặc VSCode + extension Cursor
-
Tài khoản OpenAI có truy cập GPT-4 và hosted tools (web-search)
-
Thư viện
openai
(v1.3+)
Cấu trúc dự án gợi ý
deep_research_agent/
├── .env
├── deep_research.ipynb
└── requirements.txt
1. Cài đặt môi trường
Tạo thư mục và cài thư viện
mkdir deep_research_agent
cd deep_research_agent
python -m venv venv
source venv/bin/activate # hoặc .\venv\Scripts\activate trên Windows
pip install openai python-dotenv jupyter
Tạo file requirements.txt
openai
python-dotenv
jupyter
2. Tạo file .env
Tạo file .env
chứa API key của bạn:
OPENAI_API_KEY=sk-...
3. Tạo Notebook deep_research.ipynb
Bạn có thể tạo một file notebook mới trong VSCode hoặc Jupyter. Dưới đây là nội dung gợi ý từng bước bạn cần triển khai:
4. Nội dung notebook (deep_research.ipynb
)
🔹 Bước 1: Khởi tạo môi trường
import os
from dotenv import load_dotenv
import openai
load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")
🔹 Bước 2: Định nghĩa công cụ hosted (web search)
from openai import OpenAI
from openai.types.beta.threads import ToolAssistant
from openai.types.beta.tools import ToolChoice
client = OpenAI()
# Mô tả Search Agent
instructions = """
You are a research assistant.
Given a search term, you search the web for that term.
You produce a concise summary in 2–3 paragraphs, capturing the main points.
Write succinctly. No need for good grammar.
"""
tools = [{"type": "web-search"}] # Tool được OpenAI host
🔹 Bước 3: Tạo Assistant (Agent)
assistant = client.beta.assistants.create(
name="Search Agent",
instructions=instructions,
tools=tools,
model="gpt-4-turbo"
)
Bước 4: Tạo Thread, gửi yêu cầu tìm kiếm
thread = client.beta.threads.create()
user_input = "Latest AI agent frameworks in 2025"
# Thêm message
client.beta.threads.messages.create(
thread_id=thread.id,
role="user",
content=user_input
)
# Run với yêu cầu bắt buộc dùng web-search
run = client.beta.threads.runs.create(
thread_id=thread.id,
assistant_id=assistant.id,
tool_choice={"type": "required"},
model="gpt-4-turbo"
)
# Chờ chạy xong
import time
while True:
run_status = client.beta.threads.runs.retrieve(thread_id=thread.id, run_id=run.id)
if run_status.status in ["completed", "failed"]:
break
time.sleep(1)
# Lấy kết quả
messages = client.beta.threads.messages.list(thread_id=thread.id)
for msg in messages:
print(f"{msg.role}: {msg.content[0].text.value}")
Lưu ý về chi phí
-
Mỗi lần gọi
web-search
tool tốn 2.5 cent/lần -
Có thể giảm chi phí bằng cách chọn
search_context="low"
nếu API hỗ trợ (đang thay đổi liên tục)
Không có bình luận