Phạm Văn Thư
AI agents và ứng dụng · AI-assisted content

LangChain: kiến trúc ba lớp, middleware và trợ lý cho khách sạn ven biển

Đăng ngày 12/10/2026

Mục lục bài nghiên cứu
Hình đại diện LangChain — AI agent mã nguồn mở

Nhận định nhanh: LangChain hợp với ai ở thời điểm cuối 2026

Nếu chỉ cần một câu: LangChain là bộ thư viện giúp ứng dụng làm việc với nhiều nhà cung cấp mô hình qua cùng một giao diện, rồi dựng agent có công cụ trên nền LangGraph. README hiện gọi dự án là “nền tảng kỹ thuật agent”, một framework nối các thành phần tương thích lẫn nhau và các tích hợp bên thứ ba. [1][3]

Nên cân nhắc khi đội có lập trình viên Python, muốn giữ quyền đổi nhà cung cấp mô hình mà không viết lại ứng dụng, và cần chèn chính sách vào vòng lặp agent như giới hạn số lần gọi, che thông tin cá nhân hay chờ người duyệt. Ở thế hệ v1 trong kho, các chính sách ấy được gắn qua middleware của hàm create_agent. [3][5]

Không nên lấy LangChain làm điểm khởi đầu khi tổ chức không có người viết mã, khi ứng dụng chỉ gọi một mô hình với lời nhắc cố định, hoặc khi cần ngay một máy chủ có giao diện quản trị và phân quyền người dùng. Tài liệu đã đọc mô tả một thư viện, còn phần quan sát và triển khai có quản lý được README trỏ sang LangSmith, một sản phẩm riêng. [1]

Bài toán gốc: đổi mô hình, nối công cụ mà không viết lại ứng dụng

Mỗi nhà cung cấp mô hình có định dạng tin nhắn, cách gọi công cụ và cách trả đầu ra có cấu trúc riêng, trong khi danh sách mô hình đáng dùng đổi liên tục. Ứng dụng gắn chặt vào một SDK sẽ tốn công khi muốn thử mô hình khác. README nêu khả năng hoán đổi mô hình và kết nối dữ liệu qua thư viện tích hợp là lý do chính để dùng LangChain. [1]

Lời giải của dự án là chuẩn hóa ở tầng trừu tượng. Mô hình chat của mọi đối tác kế thừa BaseChatModel; mọi đơn vị ghép được, từ prompt, bộ phân tích đầu ra tới công cụ và retriever, đều theo giao thức Runnable với invoke, stream, batch cùng biến thể bất đồng bộ. Hàm init_chat_model nhận chuỗi dạng “nhà cung cấp:mô hình” và chỉ nạp gói đối tác khi được yêu cầu. [3]

Bài toán thứ hai là vòng lặp agent: mô hình đề nghị gọi công cụ, ứng dụng thực thi, đưa kết quả trở lại, lặp tới khi xong. Thêm thử lại, giới hạn, phê duyệt và đầu ra có cấu trúc thì vòng lặp phức tạp rất nhanh; LangChain v1 đóng gói nó thành một đồ thị trạng thái LangGraph được biên dịch sẵn. [3][6]

Ba lớp gói: langchain-core, langchain và các gói đối tác

Trang kiến trúc trong thư mục openwiki chia hệ thống thành ba lớp. langchain-core chứa trừu tượng nền độc lập nhà cung cấp: Runnable, BaseChatModel, kiểu tin nhắn, BaseTool, prompt, output parser, retriever và callback. Lớp này theo semantic versioning chặt, báo trước thay đổi phá vỡ, giữ deprecation qua nhiều bản minor và được mô tả là phần ít dịch chuyển nhất. [3]

Lớp langchain, mã đặt ở libs/langchain_v1, là gói người dùng nhập hằng ngày: create_agent, hệ thống middleware, init_chat_model, đầu ra có cấu trúc và AgentState. Nó phụ thuộc langchain-core và LangGraph, được phép thay đổi nhanh hơn core. Lớp thứ ba là các gói đối tác như langchain-openai, langchain-anthropic, langchain-ollama, mỗi gói hiện thực trừu tượng của core cho một nhà cung cấp và phát hành độc lập. [3]

Monorepo còn có standard-tests, bộ kiểm thử dùng chung để kiểm tính tuân thủ của mô hình, embedding, công cụ giữa các nhà cung cấp, cùng text-splitters và model-profiles [4]. Nhận định của bài: phân lớp này cho phép ghim phiên bản theo từng gói và viết gói đối tác riêng cho một dịch vụ mô hình nội bộ bằng cách kế thừa BaseChatModel [3], đổi lại số gói phải theo dõi tăng lên.

Bản đồ hệ sinh thái: thứ gì nằm trong kho này, thứ gì không

Theo README, LangGraph là framework điều phối agent cấp thấp ở kho riêng; Deep Agents là gói cấp cao xây trên LangChain cho agent biết lập kế hoạch, dùng subagent và hệ thống tệp; LangChain.js là thư viện tương ứng cho JavaScript, TypeScript; LangSmith phục vụ đánh giá, quan sát, gỡ lỗi; LangSmith Deployment là nền tảng triển khai cho workflow dài và có trạng thái. [1]

Ngay trong kho còn có langchain-classic, gói kế thừa chứa các chain cũ, re-export từ langchain-community, API indexing và chức năng đã deprecated. README của gói nói đa số trường hợp nên dùng gói langchain chính, và trang kiến trúc khuyên không dùng classic cho dự án mới. [3][7]

Hệ quả thực tế: hướng dẫn cũ trên mạng thường dùng các chain kiểu cũ, nay thuộc gói classic; dự án mới nên theo create_agent và middleware, dự án đang chạy nên chuyển dần thay vì trộn hai phong cách trong một mô-đun. Bảng phụ thuộc cũng đáng để ý: langchain-core phụ thuộc gói langsmith, httpx và pydantic [3], nên thư viện client của LangSmith được cài kèm dù tổ chức không dùng dịch vụ đó.

Vòng lặp agent: tin nhắn đi qua middleware, mô hình và ToolNode như thế nào

Khi gọi agent.invoke với danh sách tin nhắn, dữ liệu vào đồ thị từ nút START. Hook before_agent chạy một lần, before_model chạy trước mỗi lần gọi mô hình. Agent dựng ModelRequest gồm mô hình, tin nhắn, system message, công cụ, định dạng phản hồi, trạng thái và ngữ cảnh runtime, rồi cho đi qua chuỗi wrap_model_call trước khi tới mô hình thật. [6]

Mô hình trả về AIMessage, có thể kèm tool_calls. Sau after_model, cạnh điều kiện xét: có jump_to từ middleware thì đi theo; không còn lời gọi công cụ thì thoát; còn lời gọi chưa chạy thì gửi tới ToolNode, nơi công cụ chạy song song khi có thể và kết quả thành ToolMessage gắn tool_call_id. Trường messages dùng reducer add_messages nên lịch sử cộng dồn, toàn bộ hội thoại được đưa lại cho lần gọi kế tiếp. [6]

Đầu ra có cấu trúc có hai chiến lược: ToolStrategy tạo công cụ tổng hợp cho mỗi schema, tốn thêm một lượt gọi; ProviderStrategy dùng tính năng gốc của nhà cung cấp; với schema thô, create_agent tự chọn [6]. Đồ thị được biên dịch với recursion_limit=9_999, nên giới hạn thực tế phải do ứng dụng đặt bằng middleware giới hạn số lần gọi [5][6]. Để dừng chờ người rồi tiếp tục ở lần gọi sau, tài liệu chỉ cách biên dịch đồ thị kèm Checkpointer lưu trạng thái giữa các lần gọi [6].

Danh mục tính năng đối chiếu được tại commit

Tầng mô hình: giao diện thống nhất BaseChatModel với invoke, stream, batch và bản bất đồng bộ; init_chat_model nạp nhà cung cấp theo định danh; thư mục partners có các gói như OpenAI, Anthropic, Ollama, Groq, Mistral AI, Hugging Face, DeepSeek. [3][4]

Tầng agent: create_agent dựng đồ thị LangGraph; middleware dựng sẵn gồm thử lại và dự phòng mô hình, giới hạn số lần gọi, chuyển lỗi công cụ thành ToolMessage, human-in-the-loop với bốn quyết định approve, edit, reject, respond, PIIMiddleware che thông tin cá nhân, ShellToolMiddleware có sandbox host, Docker hoặc Codex [5]. Tầng quan sát: callback ghi màn hình, ghi tệp, gom token; LangSmith khi bật biến môi trường; collect_runs gom lượt chạy cục bộ; trace_policy bỏ payload khỏi span [5][8].

Lưu ý về nguồn: các trang openwiki nói trên do công cụ openwiki/0.5.0 sinh và tự đánh dấu đã xác minh vào cuối tháng 9/2026, kèm danh sách tệp mã chúng dựa vào [3][5][6][8]. Bài coi đây là tài liệu thứ cấp có giá trị định hướng; trước khi dùng một API cụ thể cần đối chiếu mã và tài liệu tham chiếu của đúng phiên bản cài đặt.

Ai nên dùng: đội có lập trình viên và muốn giữ quyền chọn nhà cung cấp

Người dùng tự nhiên của LangChain là kỹ sư Python, hoặc TypeScript qua LangChain.js, đang xây sản phẩm có thành phần mô hình ngôn ngữ: trợ lý chăm sóc khách hàng, tìm kiếm tài liệu nội bộ, xử lý hồ sơ. Lớp trừu tượng phát huy nhất khi đội thử nhiều mô hình hoặc kết hợp mô hình đám mây với mô hình nội bộ qua gói như langchain-ollama. [1][3]

Doanh nghiệp cần chèn kiểm soát vào giữa vòng lặp, như bảo hiểm, y tế, lưu trú, hưởng lợi từ middleware vì chính sách viết một lần và gắn vào nhiều agent [5]. Đơn vị cung cấp dịch vụ mô hình nội bộ có thể viết gói đối tác riêng và dùng standard-tests để kiểm tính tuân thủ giao diện [4].

Ít phù hợp với nhóm không có lập trình viên hoặc cần sản phẩm hoàn chỉnh có giao diện quản trị. Những nhóm đó nên bắt đầu từ công cụ có giao diện, và chỉ cần tới thư viện khi yêu cầu tùy biến vượt quá khả năng của công cụ.

Tình huống giả định: trợ lý khách lưu trú cho một khu nghỉ dưỡng ven biển Đà Nẵng

Giả sử một khu nghỉ dưỡng ven biển Đà Nẵng đón nhiều khách quốc tế; lễ tân trả lời lặp lại về giờ nhận, trả phòng, đưa đón sân bay, phụ thu trẻ em, tour Hội An hay Sơn Trà, bằng tiếng Việt, Anh, Hàn, Trung. Đề xuất một trợ lý trên website và ứng dụng nhắn tin, dựng bằng create_agent với ba nhóm công cụ: tra sổ tay vận hành, tra tình trạng phòng ở chế độ chỉ đọc, tạo phiếu yêu cầu cho buồng phòng và kỹ thuật. [6]

Chuỗi middleware đề xuất, từ ngoài vào trong: PIIMiddleware che số hộ chiếu, số điện thoại; ModelCallLimitMiddleware và ToolCallLimitMiddleware chặn vòng lặp tốn kém; ModelFallbackMiddleware chuyển sang mô hình dự phòng khi nhà cung cấp chính lỗi; HumanInTheLoopMiddleware chặn mọi lời gọi đổi ngày, hủy đặt phòng hay đề xuất hoàn tiền để lễ tân trực duyệt, sửa, từ chối hoặc trả lời thay. Thứ tự là thiết kế của bài; tài liệu chỉ quy định phần tử đầu danh sách là lớp ngoài cùng. [5]

Mỗi yêu cầu được phân loại thành đối tượng có cấu trúc gồm bộ phận, mức khẩn, ngôn ngữ nhờ response_format, và phiếu chỉ được tạo khi đối tượng hợp lệ [6]. Câu trả lời về chính sách phải dựa trên sổ tay; câu hỏi ngoài sổ tay được chuyển cho người thay vì để mô hình suy diễn.

Mùa mưa bão cuối năm ở miền Trung là phép thử tự nhiên, khi yêu cầu đổi lịch tăng vọt. Giấy tờ tùy thân dùng cho thủ tục khai báo lưu trú nên đi quy trình riêng mà trợ lý không nhìn thấy. Kịch bản này là gợi ý thiết kế, hiệu quả thật chỉ biết sau thử nghiệm.

Từ thư viện thành dịch vụ: phần việc LangChain không làm thay

Vì LangChain là thư viện, khách sạn phải tự dựng phần dịch vụ bao quanh: API nhận tin, xác thực, hàng đợi, lưu hội thoại và checkpoint, màn hình để lễ tân xử lý yêu cầu chờ duyệt. Tài liệu đã đọc không mô tả máy chủ, phân quyền hay kênh nhắn tin dựng sẵn; README trỏ phần triển khai có quản lý sang LangSmith Deployment. [1]

Các gói phát hành và đánh số riêng: gói langchain đòi một khoảng phiên bản langchain-core cụ thể, gói đối tác tự quản việc ghim API nhà cung cấp [3], nên lockfile phải được quản chặt và mỗi lần nâng gói cần chạy lại bộ hồi quy. Trang openwiki ghi langchain-core 1.6.5 lúc sinh tài liệu [3], còn siêu dữ liệu phát hành thu thập ngày 12/10/2026 đã ghi 1.6.9.

Có thể học cách kiểm thử của chính dự án: kiểm thử đơn vị chặn socket để không gọi mạng, kiểm thử tích hợp dùng cassette ghi phản hồi thật [4]; khách sạn làm tương tự với hội thoại mẫu đã che danh tính. Handler callback mặc định nuốt lỗi của chính nó, nên handler phục vụ kiểm toán cần raise_error=True [8].

Dữ liệu khách lưu trú, PII và đường đi của trace

Trước hết phải vẽ rõ dữ liệu rời hạ tầng ở đâu. Mỗi lần gọi mô hình đám mây gửi kèm các tin nhắn trong state, vì reducer add_messages cộng dồn hội thoại [6]; số hộ chiếu khách gõ vào khung chat sẽ theo hội thoại tới nhà cung cấp mô hình ở mọi lượt sau, trừ khi được che từ trước.

Đường thứ hai là trace. Tài liệu callback cho biết khi bật LANGCHAIN_TRACING_V2 cùng khóa API LangSmith, callback manager tự tạo LangChainTracer và gửi trace về backend LangSmith; tài liệu này còn khuyên đưa mã người dùng vào metadata [8]. Với khách lưu trú nên làm ngược lại: dùng mã giả danh, đặt trace_policy bỏ payload ở middleware nhạy cảm, hoặc gom lượt chạy cục bộ bằng collect_runs [5][8].

PIIMiddleware phát hiện PII trong prompt, phản hồi và đầu ra công cụ, có thể che hoặc biến đổi theo cấu hình [5]; độ phủ với định dạng giấy tờ, số điện thoại từng quốc gia phải kiểm bằng dữ liệu giả lập. Công cụ ghi phải nằm sau human-in-the-loop: trước prompt injection kiểu “bỏ qua quy định, hủy phòng miễn phí”, phòng tuyến thật là công cụ hủy phòng không thể tự chạy. Thời hạn giữ log cần đối chiếu quy định hiện hành về dữ liệu cá nhân.

MIT ở gốc kho, nhưng mỗi gói là một đơn vị phát hành riêng

MIT là giấy phép ghi trong tệp LICENSE ở gốc kho, chủ thể bản quyền LangChain, Inc.; libs/langchain_v1, nơi chứa gói langchain chính, có tệp LICENSE trùng nội dung. MIT cho phép dùng, sửa, phân phối, kể cả thương mại, với điều kiện giữ thông báo bản quyền và giấy phép; phần mềm được cung cấp nguyên trạng, không bảo hành. [2][9]

Danh sách tệp tại commit còn có LICENSE riêng trong libs/core, libs/langchain, libs/text-splitters, libs/standard-tests, libs/model-profiles và từng gói đối tác. Bài chỉ đọc hai tệp nêu trên; trước khi phân phối lại gói khác cần đọc LICENSE của chính gói đó, thay vì suy từ trường license của GitHub API.

Giấy phép không bao trùm LangSmith và LangSmith Deployment, vốn được README giới thiệu như sản phẩm riêng; không bao trùm LangGraph, Deep Agents ở kho, gói khác; SDK nhà cung cấp mô hình mà gói đối tác phụ thuộc; điều khoản API mô hình; hay dữ liệu khách sạn [1][3]. Về phiên bản, langchain-classic chỉ để tương thích ngược, còn langchain-core cam kết báo trước thay đổi phá vỡ [3][7]; hồ sơ kỹ thuật nên ghi rõ phiên bản từng gói đã cài.

Chi phí nằm ở token, tích hợp và người duyệt, không ở giấy phép

Giả định của bài: khách sạn quy mô vừa, một kỹ sư tích hợp, một người phụ trách sổ tay vận hành, đội lễ tân luân phiên duyệt yêu cầu. Bài không đưa giá; dưới đây là loại nguồn lực cần dự trù.

Chi phí biến đổi lớn nhất là lượt gọi mô hình: mỗi vòng công cụ thêm một lần gọi, ToolStrategy thêm một lượt, và vì hội thoại cộng dồn nên chi phí mỗi lượt tăng theo độ dài phiên [6]. UsageMetadataCallbackHandler gom token theo từng mô hình, nên bật từ ngày đầu [8]. Chi phí cố định gồm máy chủ, cơ sở dữ liệu hội thoại, hệ thống log; chọn mô hình nội bộ qua gói Ollama thì thêm máy có GPU và người vận hành [3].

Chi phí ẩn là thời gian người: soạn và cập nhật sổ tay, duyệt yêu cầu bị chặn, chấm bộ hội thoại kiểm thử, theo dõi thay đổi của nhiều gói. LangSmith là dịch vụ riêng với điều khoản bài chưa khảo sát [1]. Thước đo đề xuất: chi phí cho mỗi yêu cầu của khách được giải quyết đúng mà lễ tân không phải viết lại.

Ba hướng đi thay thế và tiêu chí chọn

Hướng thứ nhất là gọi thẳng SDK của một nhà cung cấp: ít lớp trung gian, dễ gỡ lỗi, nhưng mỗi lần đổi mô hình là một lần sửa mã, và phải tự viết vòng lặp công cụ, thử lại, phê duyệt. Hợp với ứng dụng nhỏ đã cam kết một nhà cung cấp.

Hướng thứ hai là framework có runtime đi kèm như Agno, hoặc thư viện gọn hơn như Pydantic AI; cũng có thể xuống thẳng LangGraph khi cần đồ thị tùy biến hơn vòng lặp create_agent, điều README gợi ý cho nhu cầu điều phối nâng cao [1]. Hướng thứ ba là công cụ dựng luồng trực quan như Langflow, Dify hay Flowise để người nghiệp vụ cùng thiết kế. Tên các dự án chỉ minh họa cho từng hướng; bài không xếp hạng chúng.

Tiêu chí chọn đề xuất: số nhà cung cấp mô hình dự kiến dùng, lượng chính sách cần chèn vào vòng lặp, năng lực đội lập trình, nhu cầu runtime dựng sẵn. Với khu nghỉ dưỡng trên, LangChain hợp lý nếu có hoặc thuê được đội phát triển; nếu không, chatbot đóng gói cho ngành lưu trú nhanh hơn, đổi lại ít quyền kiểm soát dữ liệu hơn.

Dấu hiệu LangChain chưa phải lựa chọn đúng

Nhiều lớp trừu tượng là nhiều chỗ để lỗi ẩn. Trang middleware tự liệt kê anti-pattern: sửa trực tiếp ModelRequest, nuốt lỗi im lặng, chặn luồng bất đồng bộ, chồng quá nhiều middleware vì mỗi lớp thêm độ trễ, hiểu nhầm Command khi trường không có reducer bị lớp ngoài cùng ghi đè. Đội chưa quen LangGraph sẽ tốn thời gian ở những điểm này. [5]

Hệ sinh thái rộng và đổi nhanh: gói chính, gói classic, LangGraph, Deep Agents, LangSmith, cùng nhiều thế hệ hướng dẫn trên mạng; tài liệu openwiki trong kho do máy sinh nên phải đối chiếu mã. [3][7]

Không nên dùng khi cần ngay sản phẩm có giao diện và phân quyền, khi độ trễ khắt khe đến mức mỗi lớp trung gian thành gánh nặng, hoặc khi tổ chức không muốn quản nhiều phụ thuộc Python. Với recursion_limit mặc định rất cao, thiếu giới hạn ở tầng ứng dụng có thể để chi phí vượt kiểm soát. [6]

Kế hoạch thử nghiệm ba giai đoạn trước mùa cao điểm

Giai đoạn một, hai tuần, chạy bóng: trợ lý đọc câu hỏi thật của khách đã che danh tính và soạn trả lời nháp chỉ lễ tân thấy. Đo tỷ lệ nháp dùng được nguyên văn hoặc sửa nhẹ, tỷ lệ trả lời sai chính sách, tỷ lệ chuyển đúng bộ phận; ghi token và số vòng lặp mỗi hội thoại bằng callback. [8]

Giai đoạn hai, ba tuần, mở cho một phần khách trên website với công cụ chỉ đọc, mọi công cụ ghi qua human-in-the-loop [5]. Bộ kiểm thử đỏ gồm prompt injection, yêu cầu hoàn tiền giả, câu hỏi tiếng Hàn, tiếng Trung viết sai chính tả, tin nhắn chứa số hộ chiếu. Điều kiện qua: không thao tác ghi nào chạy thiếu phê duyệt, không PII nào xuất hiện trong log hay trace.

Giai đoạn ba mở rộng sang ứng dụng nhắn tin vào mùa mưa bão, đo thời gian phản hồi đầu tiên, thời gian chờ duyệt và chi phí mô hình trên mỗi yêu cầu được giải quyết. Điều kiện dừng: một công cụ ghi chạy không qua duyệt; PII lọt ra trace bên ngoài; tỷ lệ trả lời sai chính sách vượt ngưỡng khách sạn chốt trước; hoặc chi phí vượt ngân sách hai tuần liên tiếp.

Kết luận: dùng LangChain như lớp chuẩn hóa, giữ quyết định ở con người

Tại commit khảo sát, LangChain là monorepo có kiến trúc rõ: core ổn định, lớp agent dựa trên LangGraph với middleware, các gói đối tác phát hành độc lập. Giá trị lớn nhất cho doanh nghiệp là đổi được mô hình và chèn được chính sách vào vòng lặp agent mà không viết lại ứng dụng. [3][5]

Với khu nghỉ dưỡng ven biển, đó là cách xây một trợ lý trả lời nhanh nhưng không tự ý thay đổi đặt phòng của khách. Thành bại nằm ở phần ngoài thư viện: dịch vụ bọc quanh, chính sách dữ liệu, sổ tay vận hành và đội duyệt.

Nên bắt đầu nhỏ, ghim phiên bản từng gói, đo bằng hội thoại thật đã che danh tính và chưa bật đường gửi trace ra ngoài cho tới khi có chính sách dữ liệu rõ ràng [8].

Phương pháp: kho lưu Trending, commit e4b1437 và tài liệu openwiki do máy sinh

Nguồn chọn đề tài là một kho lưu độc lập chép lại các trang GitHub Trending theo ngôn ngữ. Trong danh sách Python ngày 09/01/2026, LangChain đứng thứ 15 và khi ấy tự giới thiệu là nền tảng cho agent đáng tin cậy [10]; dữ liệu tuyển chọn ghi tổng cộng ba lần kho xuất hiện, gần nhất ngày 13/06/2026. Vì kho lưu chỉ có bốn ngôn ngữ và thiếu ngày 03/09, 12/10, việc đưa LangChain vào chuỗi “100 nghiên cứu ứng dụng về mã nguồn mở xuất hiện trong GitHub Trending năm 2026” là lựa chọn biên tập, không dựa trên thứ hạng chính thức nào của GitHub.

Phiên bản khảo sát là commit e4b143729ffb3c6307376909d3aa9921b360c1f5 (ngày commit 12/10/2026, giờ UTC), kiểm tra ngày 12/10/2026; siêu dữ liệu GitHub lúc thu thập không đánh dấu kho là archived. Chín tệp được đọc: README, hai tệp LICENSE, README của langchain-classic và năm trang openwiki về kiến trúc, quickstart, middleware, luồng thực thi agent, callback. [1][2][3][4][5][6][7][8][9]

Giới hạn cần nói rõ: bài dựa trên đọc tài liệu với trợ giúp của AI, không có bước cài đặt, chạy thử hay benchmark, và không qua phản biện khoa học. Trang openwiki do máy sinh nên mọi nhận định dựa vào chúng cần được kiểm lại trong mã; kịch bản khu nghỉ dưỡng, chi phí, so sánh và lộ trình thử nghiệm đều là phần phân tích của tác giả.

Xem mã nguồn LangChain trên GitHub

Khám phá nghiên cứu của BDSG Foundation

Trao đổi về ứng dụng công nghệ cho doanh nghiệp