Chuyển đến nội dung chính

Giới thiệu về LangChain cho Kỹ thuật Dữ liệu & Ứng dụng Dữ liệu

LangChain là một framework để đưa AI từ các mô hình ngôn ngữ lớn vào pipeline và ứng dụng dữ liệu. Hướng dẫn này cung cấp tổng quan về những gì bạn có thể làm với LangChain, bao gồm các vấn đề LangChain giải quyết và ví dụ về các trường hợp sử dụng dữ liệu.
Đã cập nhật 5 thg 10, 2026  · 11 phút đọc

Khám phá cùng AI

ChatGPTClaudePerplexity

Các mô hình ngôn ngữ lớn (LLM) như OpenAI GPT, Google BERT và Meta LLaMA đang cách mạng hóa mọi ngành nhờ khả năng tạo ra hầu như bất kỳ văn bản nào bạn có thể tưởng tượng, từ nội dung tiếp thị đến mã khoa học dữ liệu cho đến thơ ca. Mặc dù ChatGPT thu hút phần lớn sự chú ý nhờ giao diện trò chuyện trực quan, vẫn còn rất nhiều cơ hội để khai thác LLM bằng cách tích hợp chúng vào phần mềm khác.

Chẳng hạn, DataLab có Trợ lý AI giúp bạn viết hoặc cải thiện mã và văn bản trong phân tích của mình, và các khóa học tương tác của DataCamp có tính năng "giải thích lỗi của tôi" để giúp bạn hiểu bạn đã mắc sai ở đâu. Những tính năng này được vận hành bởi GPT và truy cập thông qua OpenAI API.

LangChain cung cấp một khung làm việc (framework) trên nhiều API dành cho LLM. Nó được thiết kế để giúp nhà phát triển phần mềm và kỹ sư dữ liệu làm việc hiệu quả hơn khi đưa AI dựa trên LLM vào ứng dụng và pipeline dữ liệu của họ.

Hướng dẫn này trình bày chi tiết các vấn đề mà LangChain giải quyết và những trường hợp sử dụng chính, để bạn hiểu vì sao và ở đâu nên dùng nó. Trước khi đọc, sẽ hữu ích nếu bạn nắm ý tưởng cơ bản về LLM. Bài hướng dẫn NLP đang thay đổi tương lai của khoa học dữ liệu như thế nào là nơi tốt để ôn lại kiến thức.

LangChain giải quyết những vấn đề gì?

Về cơ bản có hai quy trình làm việc khi tương tác với LLM.

  1. "Trò chuyện" là viết một prompt, gửi đến AI và nhận về phản hồi dạng văn bản.
  2. "Embedding" là viết một prompt, gửi đến AI và nhận về phản hồi dạng mảng số.

Cả quy trình trò chuyện lẫn embedding đều có một số vấn đề mà LangChain cố gắng xử lý.

Prompt đầy những đoạn văn bản mẫu lặp lại

Một vấn đề của cả trò chuyện lẫn embedding là để tạo được prompt hay, bạn cần làm nhiều hơn là chỉ nêu nhiệm vụ. Bạn còn phải mô tả cá tính và phong cách viết của AI, và kèm theo chỉ dẫn để khuyến khích tính chính xác về mặt sự kiện. Tức là, bạn có thể muốn viết một prompt đơn giản mô tả nhiệm vụ:

Write an outline for a 500-word blog post targeted at teenagers about the health benefits of doing yoga.

Tuy nhiên, để nhận được phản hồi tốt, bạn cần viết thứ gì đó như sau:

You are an expert sports scientist. Your writing style is casual but terse.

Write an outline for a 500-word blog post targeted at teenagers about the health benefits of doing yoga.

Only include factually correct information. Explain your reasoning.

Phần lớn văn bản mẫu lặp lại trong prompt sẽ giống nhau từ prompt này sang prompt khác. Lý tưởng nhất là bạn viết nó một lần, và tự động chèn vào bất kỳ prompt nào bạn muốn.

LangChain giải quyết vấn đề văn bản mẫu trong prompt bằng cách cung cấp mẫu prompt. Chúng kết hợp phần đầu vào hữu ích (trong trường hợp này là đoạn về viết blog post về yoga) với phần mẫu lặp lại (phong cách viết và yêu cầu thông tin chính xác).

Phản hồi thiếu cấu trúc

Trong quy trình trò chuyện, phản hồi từ mô hình chỉ là văn bản. Tuy nhiên, khi AI được dùng trong phần mềm, thường sẽ mong muốn có đầu ra có cấu trúc để có thể lập trình xử lý. Ví dụ, nếu mục tiêu là tạo một tập dữ liệu, bạn muốn phản hồi theo định dạng cụ thể như CSV hoặc JSON.

Giả sử bạn có thể viết prompt để AI luôn cung cấp phản hồi theo định dạng phù hợp, bạn cần cách để xử lý đầu ra đó. LangChain cung cấp các công cụ bộ phân tích đầu ra chính là cho mục đích này.

Khó chuyển đổi giữa các LLM

Dù GPT rất thành công, có rất nhiều LLM khác sẵn có. Nếu lập trình trực tiếp theo API của một công ty, bạn đang khóa phần mềm vào hệ sinh thái đó. Hoàn toàn có thể sau khi xây dựng tính năng AI trên GPT, bạn nhận ra sản phẩm cần khả năng đa ngôn ngữ mạnh hơn. Khi đó bạn có thể muốn chuyển sang Polyglot hoặc chuyển từ dùng AI sang nhúng AI vào sản phẩm và cần một mô hình gọn nhẹ hơn như StableLM của Stability AI.

LangChain cung cấp một lớp LLM, và lớp trừu tượng này giúp việc hoán đổi mô hình này sang mô hình khác dễ dàng hơn nhiều, thậm chí dùng nhiều mô hình trong cùng phần mềm.

LLM có bộ nhớ ngắn

Phản hồi của LLM được tạo dựa trên cuộc hội thoại trước đó (cả prompt của người dùng và phản hồi trước đó của mô hình). Tuy nhiên, LLM có bộ nhớ khá ngắn. Ngay cả GPT-4 tối tân cũng mặc định có bộ nhớ 8.000 token (xấp xỉ 6.000 từ).

Trong quy trình trò chuyện, nếu cuộc hội thoại kéo dài vượt quá giới hạn bộ nhớ, phản hồi của AI có thể trở nên thiếu nhất quán (vì nó không nhớ phần đầu cuộc trò chuyện). Chatbot là ví dụ có thể gặp vấn đề này. Lý tưởng là bạn muốn chatbot nhớ toàn bộ cuộc trao đổi với khách hàng để không đưa ra thông tin mâu thuẫn.

LangChain giải quyết vấn đề bộ nhớ bằng cách cung cấp công cụ lịch sử tin nhắn trò chuyện. Chúng cho phép bạn đưa lại các tin nhắn trước vào LLM để nhắc nó về những gì đã trao đổi.

Khó tích hợp việc dùng LLM vào pipeline

Khi dùng trong pipeline dữ liệu hoặc ứng dụng phần mềm, AI thường chỉ là một phần của một chức năng lớn hơn. Ví dụ, bạn có thể muốn truy xuất dữ liệu từ cơ sở dữ liệu, chuyển cho LLM, rồi xử lý phản hồi và đưa vào hệ thống khác.

LangChain cung cấp công cụ cho các quy trình dạng pipeline thông qua chain và agent. Chain là các đối tượng đơn giản xâu chuỗi nhiều thành phần (cho pipeline tuyến tính). Agent tinh vi hơn, cho phép logic nghiệp vụ quyết định cách các thành phần tương tác. Ví dụ, bạn có thể muốn có logic rẽ nhánh tùy thuộc vào đầu ra từ một LLM để quyết định bước tiếp theo.

Truyền dữ liệu vào LLM không đơn giản

Bản chất dạng văn bản của LLM có nghĩa là cách truyền dữ liệu vào mô hình thường không thật rõ ràng. Có hai phần của vấn đề.

Thứ nhất, bạn cần lưu dữ liệu ở định dạng cho phép kiểm soát phần nào của tập dữ liệu sẽ được gửi đến LLM. (Với dữ liệu hình chữ nhật như DataFrame hoặc bảng SQL, bạn thường muốn gửi từng hàng một.)

Thứ hai, bạn phải xác định cách đưa dữ liệu đó vào prompt. Cách đơn giản nhất là chèn trực tiếp tập dữ liệu vào prompt ("nhồi prompt"), nhưng cũng có các lựa chọn tinh vi hơn.

LangChain giải quyết phần đầu tiên bằng index. Chúng cung cấp chức năng nhập dữ liệu từ cơ sở dữ liệu, tệp JSON, pandas DataFrame, tệp CSV và các định dạng khác, rồi lưu theo định dạng phù hợp để đưa theo từng hàng vào LLM.

LangChain cung cấp các chain liên quan đến index để xử lý phần thứ hai của vấn đề và có các lớp cho bốn kỹ thuật truyền dữ liệu vào LLM.

Prompt stuffing là chèn toàn bộ tập dữ liệu vào prompt. Rất đơn giản nhưng chỉ hiệu quả khi dữ liệu nhỏ.

Map-reduce chia dữ liệu thành các phần, gọi LLM với một prompt ban đầu trên mỗi phần dữ liệu (phần "map"), rồi gọi LLM lần nữa với một prompt khác bao gồm các phản hồi từ vòng đầu. Cách này phù hợp bất cứ khi nào bạn nghĩ tới việc dùng lệnh "group by".

Refine là phương pháp lặp kiểu Bayesian: bạn chạy một prompt trên phần dữ liệu đầu tiên, rồi với mỗi phần dữ liệu bổ sung, bạn dùng một prompt yêu cầu LLM tinh chỉnh kết quả dựa trên tập dữ liệu mới. Cách này hiệu quả nếu bạn muốn phản hồi hội tụ về một đầu ra cụ thể.

Map-rerank là biến thể của map-reduce. Phần đầu quy trình giống nhau: chia dữ liệu và gọi prompt trên từng phần. Khác biệt là bạn yêu cầu LLM cung cấp điểm tự tin cho phản hồi, để bạn có thể xếp hạng đầu ra. Cách này phù hợp cho các tác vụ dạng gợi ý, nơi kết quả là một câu trả lời "tốt nhất" duy nhất.

LangChain hỗ trợ những ngôn ngữ lập trình nào?

LangChain có thể dùng từ JavaScript thông qua gói node langchain. Phù hợp để nhúng AI vào ứng dụng web.

Nó cũng có thể dùng từ Python thông qua gói langchain (PyPI, conda). Phù hợp để đưa AI vào pipeline dữ liệu hoặc phần mềm dựa trên Python.

Những trường hợp sử dụng chính của LangChain là gì?

LangChain có thể dùng ở bất cứ đâu bạn muốn dùng LLM. Tại đây, chúng tôi sẽ đề cập vài ví dụ liên quan đến dữ liệu, giải thích những tính năng của LangChain phù hợp.

Truy vấn tập dữ liệu bằng ngôn ngữ tự nhiên

Một trong những trường hợp sử dụng mang tính chuyển đổi của LLM cho phân tích dữ liệu là khả năng viết truy vấn SQL (hoặc mã Python hay R tương đương) bằng ngôn ngữ tự nhiên. Điều này giúp phân tích dữ liệu khám phá trở nên dễ tiếp cận với người không có kỹ năng lập trình.

Có vài biến thể quy trình làm việc. Với tập dữ liệu nhỏ, bạn có thể để LLM tạo kết quả trực tiếp. Quy trình này gồm nạp dữ liệu vào định dạng phù hợp bằng bộ tải tài liệu của LangChain, truyền dữ liệu vào LLM bằng các chain liên quan đến index, và phân tích phản hồi bằng bộ phân tích đầu ra.

Phổ biến hơn, bạn sẽ truyền chi tiết cấu trúc dữ liệu (như tên bảng, tên và kiểu cột, và các chi tiết như cột nào có giá trị thiếu) cho LLM và yêu cầu mã SQL/Python/R. Sau đó bạn thực thi mã kết quả. Quy trình này đơn giản hơn vì không cần truyền dữ liệu, dù LangChain vẫn hữu ích vì có thể mô-đun hóa các bước.

Một biến thể khác là thêm một lần gọi LLM thứ hai để diễn giải kết quả. Kiểu quy trình làm việc gồm nhiều lần gọi LLM là nơi LangChain thực sự phát huy tác dụng. Trong trường hợp này, bạn có thể dùng công cụ lịch sử tin nhắn để đảm bảo phần diễn giải kết quả nhất quán với cấu trúc dữ liệu đã cung cấp trước đó.

Tương tác với API

Với các trường hợp dữ liệu như xây dựng pipeline dữ liệu, việc đưa AI từ LLM vào thường là một phần của quy trình dài hơn có các lời gọi API khác. Ví dụ, bạn có thể muốn dùng API để truy xuất dữ liệu cổ phiếu hoặc tương tác với nền tảng đám mây.

Các tính năng chain và agent của LangChain cho phép bạn kết nối các bước theo trình tự (và dùng thêm logic nghiệp vụ cho pipeline rẽ nhánh) rất phù hợp với trường hợp sử dụng này.

Xây dựng chatbot

Chatbot là một trong những trường hợp sử dụng phổ biến nhất của AI, và AI sinh sinh (generative AI) hứa hẹn rất nhiều cho các chatbot có hành vi thực tế hơn. Tuy vậy, việc kiểm soát cá tính của chatbot và khiến nó ghi nhớ ngữ cảnh cuộc trò chuyện có thể khá rườm rà.

Mẫu prompt của LangChain cho bạn quyền kiểm soát cả cá tính của chatbot (tông giọng và phong cách giao tiếp) lẫn các phản hồi nó đưa ra.

Ngoài ra, công cụ lịch sử tin nhắn hữu ích để mang lại cho chatbot một bộ nhớ dài hơn vài trăm hay vài nghìn từ mà LLM mặc định cung cấp, cho phép tăng tính nhất quán trong một cuộc trò chuyện hoặc thậm chí xuyên suốt nhiều cuộc trò chuyện.

Các mục đích khác

Hướng dẫn này chỉ mới chạm đến bề mặt của các khả năng. Còn rất nhiều trường hợp sử dụng LLM cho các chuyên gia dữ liệu. Dù bạn muốn tạo trợ lý cá nhân, tóm tắt báo cáo, hay trả lời câu hỏi về tài liệu hỗ trợ hoặc kho tri thức, LangChain cung cấp một framework để đưa AI vào bất kỳ pipeline hay ứng dụng dữ liệu nào bạn có thể nghĩ đến.

Nâng cấp lên cấp độ tiếp theo

Nội dung về LangChain sắp có trên DataCamp. Trong lúc chờ, bạn có thể tìm hiểu một trường hợp sử dụng được đề cập ở đây bằng cách học khóa Xây dựng Chatbot bằng Python.

Chủ đề
Kỹ thuật Dữ liệu
Trí tuệ Nhân tạo
Liên quan

blog

Claude Opus 4.6: Tính năng, Điểm chuẩn, Bài kiểm tra thực hành và hơn thế nữa

Mô hình mới nhất của Anthropic dẫn đầu ở mã hóa tác tử và lập luận phức tạp. Thêm vào đó, nó có cửa sổ ngữ cảnh 1M.
Matt Crabtree's photo

Matt Crabtree

10 phút

Xem ThêmXem Thêm