Các loại chatbot
- Rule-based: Phản hồi theo luật cố định
- ML-based: Học từ dữ liệu hội thoại
- LLM-powered: Sử dụng mô hình ngôn ngữ lớn (GPT, Gemini)
Chatbot đơn giản với intent matching
import re
intents = {
r"(xin chào|hello|hi)": "Xin chào! Tôi là chatbot Python Vietnam 🐍",
r"(python là gì)": "Python là ngôn ngữ lập trình đa năng, dễ học và phổ biến nhất thế giới!",
r"(học python)": "Bạn có thể bắt đầu tại pythonvietnam.com — hoàn toàn miễn phí!",
r"(cảm ơn|thanks)": "Không có gì! Chúc bạn học tốt! 🎉",
}
def chatbot_response(message):
message = message.lower()
for pattern, response in intents.items():
if re.search(pattern, message):
return response
return "Xin lỗi, tôi chưa hiểu câu hỏi. Bạn hỏi lại được không?"
# Chat loop
while True:
user_input = input("Bạn: ")
if user_input.lower() in ["quit", "exit"]:
break
print(f"Bot: {chatbot_response(user_input)}")
Tích hợp OpenAI GPT
from openai import OpenAI
client = OpenAI(api_key="your-api-key")
def ask_gpt(question, context="Bạn là trợ lý AI chuyên về Python"):
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": context},
{"role": "user", "content": question}
],
temperature=0.7,
max_tokens=500
)
return response.choices[0].message.content
answer = ask_gpt("Decorator trong Python là gì?")
print(answer)
RAG Chatbot với LangChain
from langchain.chains import RetrievalQA
from langchain_community.vectorstores import FAISS
from langchain_openai import OpenAIEmbeddings, ChatOpenAI
# Load documents → embeddings → vector store
vectorstore = FAISS.load_local("docs_index", OpenAIEmbeddings())
qa_chain = RetrievalQA.from_chain_type(
llm=ChatOpenAI(model="gpt-4o-mini"),
retriever=vectorstore.as_retriever(search_kwargs={"k": 3})
)
answer = qa_chain.invoke("Cách dùng decorator trong Python?")
print(answer["result"])
LangChain + LLM cho phép xây dựng chatbot thông minh có thể trả lời dựa trên tài liệu riêng của bạn.