Làm xong bài này, bạn có một chatbot bằng Python chạy trên giao diện web, nhớ được ngữ cảnh hội thoại và trả lời theo kiểu streaming thời gian thực.
Phần lõi của một chatbot chỉ là lệnh gọi tới mô hình ngôn ngữ lớn (LLM) qua API, còn phần mất công nằm ở những thứ bọc quanh lệnh gọi đó: bộ nhớ hội thoại, streaming và cái giao diện để người khác dùng được.
Điều kiện tiên quyết:
- Cài đặt Python 3.10 trở lên.
- API Key từ OpenAI hoặc Anthropic.
- Môi trường dòng lệnh (Terminal/Command Prompt) đã sẵn sàng.

Bước 1 — Dựng môi trường Python và khoá API
Dựng môi trường ảo trước để các thư viện của dự án này không đụng vào Python hệ thống.
# Khởi tạo và kích hoạt môi trường ảo
python -m venv chatbot_env
source chatbot_env/bin/activate # Windows: chatbot_env\Scripts\activate
# Cài đặt thư viện lõi
pip install openai anthropic python-dotenv streamlit reflex tenacityTạo file .env tại thư mục gốc để quản lý biến môi trường:
OPENAI_API_KEY=your_openai_api_key
ANTHROPIC_API_KEY=your_anthropic_api_key
Kiểm tra: Chạy python --version để xác nhận phiên bản.
Bước 2 — Gọi API lần đầu và xác nhận nó chạy
Chọn một trong hai nhà cung cấp dưới đây để kiểm tra kết nối, vì bước này tách bạch được lỗi khoá API với lỗi code trước khi bạn viết thêm bất cứ dòng nào.
OpenAI (Sử dụng Responses API)
Đoạn dưới dùng model gpt-5.6 qua phương thức responses.create mới nhất.
from openai import OpenAI
import os
from dotenv import load_dotenv
load_dotenv()
client = OpenAI()
response = client.responses.create(
model="gpt-5.6",
input=[{"role": "user", "content": "Kết nối thành công?"}]
)
print(response.output_text)Anthropic
Bản Anthropic gọi model claude-opus-5 cho phiên làm việc đầu tiên.
from anthropic import Anthropic
import os
client = Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY"))
message = client.messages.create(
max_tokens=1024,
messages=[{"role": "user", "content": "Kết nối thành công?"}],
model="claude-opus-5",
)
print(message.content[0].text)