Building a GenAI News Assistant with MCP: From Financial Articles to?
Trong bối cảnh công nghệ trí tuệ nhân tạo ngày càng phát triển, việc ứng dụng các mô hình ngôn ngữ lớn (GenAI) trong lĩnh vực truyền thông và báo chí đang mở ra nhiều cơ hội mới. Bài viết "Building a GenAI News Assistant with MCP: From Financial Articles to Personalized Podcasts" trên Medium của OpenAI trình bày cách xây dựng một trợ lý tin tức dựa trên GenAI, có khả năng chuyển đổi các bài viết tài chính thành các bản tin podcast cá nhân hóa. Giải pháp này không chỉ giúp người dùng tiếp cận thông tin một cách tiện lợi mà còn nâng cao trải nghiệm nghe tin tức phù hợp với nhu cầu riêng biệt của từng cá nhân.

Insight Summary
Tóm tắt nhanh
- Tác giả xây một hệ thống AI tự động đọc tin tài chính rồi biến nó thành bản tóm tắt, bản tin và podcast ngắn.
- Hệ thống này dùng một chuẩn kết nối tên MCP để AI gọi đúng công cụ khi cần, thay vì phải viết riêng lẻ từng kiểu tích hợp.
- Tin tức được lấy từ web, làm sạch, loại trùng, rồi lưu trong cơ sở dữ liệu để tìm lại nhanh bằng “tìm theo ý nghĩa”, không chỉ theo từ khóa.
- Người dùng có thể chọn chủ đề quan tâm, đọc tin trên web, nghe podcast hoặc hỏi AI ngay trong giao diện.
- Tác giả cũng tính toán chi phí vận hành để xem hệ thống có thể mở rộng cho nhiều người mà vẫn kiểm soát được tiền.
Tác giả bài gốc chia sẻ một dự án rất thực tế
Xây một “trợ lý tin tức” dùng AI để theo dõi các bài viết tài chính trên web, tự tóm tắt nội dung, rồi chuyển thành newsletter và podcast cá nhân hóa. Ý tưởng xuất phát từ một vấn đề quen thuộc: tin tức quá nhiều, cập nhật quá nhanh, người đọc không thể theo kịp hết nếu phải tự lọc thủ công. Điểm đáng chú ý là đây không chỉ là một chatbot trả lời câu hỏi. Hệ thống được thiết kế như một dây chuyền tự động: tìm tin, làm sạch dữ liệu, tóm tắt, lưu trữ, tìm kiếm theo ngữ nghĩa, rồi xuất ra nhiều dạng nội dung khác nhau cho từng người dùng. Tác giả đặt tên cho hệ thống là GenAI-NewsScraper. Có thể hiểu đơn giản đây là một “máy tổng hợp tin” chạy bằng AI, có khả năng đọc bài viết từ nhiều nguồn tài chính, rút ra ý chính và tạo ra bản tin phù hợp với sở thích của từng người.
Nỗi đau mà hệ thống muốn giải quyết khá rõ
Trong lĩnh vực tài chính, thông tin đến từ nhiều nguồn, nhiều định dạng và tốc độ thay đổi rất nhanh. Nếu chỉ đọc lướt tiêu đề thì dễ bỏ sót, còn nếu cố đọc hết thì lại quá tải. Để xử lý việc này, tác giả dùng một cấu trúc gồm nhiều phần nhỏ, mỗi phần làm một nhiệm vụ riêng. Cách làm này giúp hệ thống dễ mở rộng, dễ bảo trì và có thể thêm tính năng mới mà không phải viết lại toàn bộ. Một trong những khái niệm quan trọng nhất trong bài là MCP. Có thể hiểu MCP là một “chuẩn chung” để AI nói chuyện với các công cụ bên ngoài như cơ sở dữ liệu, công cụ tìm kiếm, công cụ tóm tắt hoặc công cụ tạo âm thanh. Nếu trước đây mỗi lần nối AI với một công cụ là phải viết riêng cách giao tiếp, thì MCP giống như một ổ cắm chuẩn. AI chỉ cần biết “gọi công cụ nào”, còn cách kết nối, trao đổi dữ liệu và quản lý phiên làm việc sẽ do MCP lo.
- MCP giúp AI dùng nhiều công cụ mà không phải nối tay từng cái một.
- Hệ thống dễ thay đổi hơn vì sau này có thể thêm công cụ mới mà ít đụng vào phần lõi.
- AI không cần biết cách công cụ hoạt động bên trong, chỉ cần biết mục đích của công cụ.
- Điều này rất hữu ích khi một hệ thống có nhiều phần như tìm kiếm, lưu trữ, tóm tắt và tạo giọng đọc.
Trong dự án này, MCP server là nơi “đặt” các công cụ mà AI có thể gọi. Ví dụ: tìm bài trong cơ sở dữ liệu, mở rộng nội dung bài viết, tìm tin ngoài web và tạo podcast từ bài đã chọn. Phần thu thập dữ liệu bắt đầu từ việc quét các trang tin tài chính được chọn sẵn. Công cụ quét web sẽ lấy các thông tin cơ bản như tiêu đề, mô tả ngắn, đường link, tên nguồn và ngày đăng. Sau đó, hệ thống tải nội dung đầy đủ của bài viết về và làm sạch nó để chỉ giữ lại phần nội dung chính. Đây là bước quan trọng vì bài báo trên web thường có nhiều thứ thừa như menu, quảng cáo, nút chia sẻ hoặc khối nội dung phụ. Tác giả cũng đặc biệt xử lý việc trùng lặp tin. Trong tài chính, cùng một sự kiện có thể xuất hiện ở nhiều báo khác nhau, nên nếu không lọc kỹ thì hệ thống sẽ lưu lặp và làm newsletter bị “loãng”.
Cách chống trùng được làm theo hai lớp
- Đầu tiên so tiêu đề xem có giống nhau không.
- Nếu tiêu đề hơi khác nhưng nội dung gần như cùng một tin, hệ thống sẽ so “độ giống về ý nghĩa” để phát hiện trùng.
“Độ giống về ý nghĩa” ở đây có thể hiểu là AI không chỉ nhìn chữ, mà còn hiểu hai đoạn đang nói về cùng một câu chuyện hay không. Nhờ vậy, hệ thống chỉ giữ lại tin mới thật sự. Sau khi lấy được nội dung gốc, hệ thống sẽ tạo bản mở rộng và bản tóm tắt. Nếu cần, nó có thể dùng tìm kiếm web để bổ sung thêm bối cảnh, giải thích thuật ngữ hoặc làm rõ tác động của tin với thị trường. Cuối cùng, một mô hình AI khác sẽ viết lại nội dung thành bản tóm tắt ngắn gọn, dễ đọc, phù hợp với người dùng và cả phần đọc bằng giọng nói. Từ đó, hệ thống lưu cả bản gốc lẫn bản đã xử lý vào cơ sở dữ liệu. Cơ sở dữ liệu được dùng ở đây là PostgreSQL, một hệ quản trị dữ liệu rất phổ biến. Điểm thú vị là tác giả không dùng một “vector database” riêng, mà gắn thêm pgvector vào PostgreSQL.
Nói dễ hiểu, “vector” là cách AI biến văn bản thành một dạng số để máy có thể so sánh mức độ gần nhau về ý nghĩa. Khi có pgvector, hệ thống vừa lưu dữ liệu kiểu bảng thông thường, vừa tìm kiếm theo ý nghĩa của văn bản trong cùng một nơi.
- Cơ sở dữ liệu lưu tiêu đề, nguồn, ngày đăng, tóm tắt, nội dung gốc và bản mở rộng.
- Mỗi bài còn có một “mã số ngữ nghĩa” để AI tìm bài liên quan nhanh hơn.
- Khi người dùng hỏi, hệ thống không chỉ tìm theo từ khóa, mà còn tìm những bài gần chủ đề.
- Cách này tiện vì không phải tách dữ liệu sang quá nhiều hệ thống khác nhau.
Ví dụ, nếu người dùng hỏi “tuần này thị trường trái phiếu châu Âu có gì mới”, hệ thống sẽ biến câu hỏi đó thành dạng số rồi so với các bài đã lưu để tìm ra những bài phù hợp nhất. Sau đó, nó có thể lọc theo thời gian hoặc theo nhóm chủ đề trước khi trả kết quả. Phần agent là “bộ não điều phối” của hệ thống. Tác giả dùng LangGraph để agent biết lúc nào nên tìm trong cơ sở dữ liệu, lúc nào cần tìm trên web, và lúc nào nên gọi công cụ tạo podcast. Có thể hình dung như một nhân viên tổng đài thông minh. Người dùng gửi câu hỏi, agent nhìn ngữ cảnh cuộc trò chuyện rồi quyết định: trả lời bằng dữ liệu đã có, tìm thêm thông tin mới, hay lấy danh sách bài theo sở thích của người dùng. Một điểm hay là agent không bị giam trong một kịch bản cứng. Nếu câu hỏi của người dùng liên quan đến bài đã lưu, nó tìm trong dữ liệu nội bộ. Nếu câu hỏi cần thông tin mới hơn, nó sẽ gọi công cụ tìm kiếm web.
Phần tạo podcast cũng khá thực tế. Hệ thống sẽ chọn những bài liên quan đến sở thích của người dùng trong tuần, ghép chúng thành một kịch bản mạch lạc rồi chuyển thành giọng nói bằng công cụ text-to-speech. Text-to-speech, hay TTS, là công nghệ biến văn bản thành âm thanh. Trong dự án này, nó được dùng để tạo một bản podcast ngắn từ các bản tóm tắt đã xử lý, giúp người dùng nghe nhanh khi đang di chuyển hoặc làm việc khác.
- Tác giả chọn các bài viết theo chủ đề người dùng quan tâm.
- AI ghép nhiều bản tóm tắt thành một kịch bản liền mạch, có mở đầu và kết thúc.
- Kịch bản sau đó được đọc bằng giọng AI tự nhiên hơn so với kiểu máy móc thông thường.
- File âm thanh được lưu lại để phát trên giao diện web hoặc gửi kèm newsletter.
Mỗi podcast thường chỉ dài khoảng 1 đến 5 phút. Mục tiêu không phải thay thế một chương trình radio đầy đủ, mà là giúp người dùng nắm tin chính thật nhanh bằng âm thanh. Giao diện người dùng được xây bằng Streamlit, một công cụ giúp làm web nhanh bằng Python. Người dùng có thể chọn danh mục mình quan tâm như thị trường, tài chính, công nghệ, xem tin mới, nghe podcast và đặt câu hỏi cho AI ngay trên cùng một màn hình. Trang chính hoạt động như một bảng điều khiển đơn giản. Bên cạnh đó có phần đăng ký newsletter, nơi người dùng nhập tên, email và chủ đề quan tâm để hệ thống tự gửi bản tin hằng tuần.
Khi người dùng chọn sở thích, hệ thống sẽ chạy các bước phía sau
Lấy tin tương ứng, tóm tắt, kiểm tra trùng lặp, tạo podcast nếu cần và hiển thị kết quả. Toàn bộ việc này diễn ra gần như tự động. Phần chat cũng đáng chú ý vì nó cho phép hỏi sâu hơn về từng tin. Nếu người dùng hỏi tiếp kiểu “nói rõ hơn” hoặc “tình hình ở châu Âu thì sao”, hệ thống vẫn hiểu nhờ nhớ ngữ cảnh cuộc trò chuyện trước đó. Ngoài ra còn có lớp gửi email hằng tuần. Hệ thống sẽ lấy bài phù hợp với từng người, ghép thành bản tin ngắn gọn, thêm link gốc và đính kèm podcast. Mục tiêu của newsletter không chỉ là liệt kê hàng loạt đường link. Nó được thiết kế như một bản tổng hợp có chọn lọc, vừa đọc nhanh được, vừa nghe nhanh được. Tác giả cũng dành phần đáng kể để phân tích chi phí vận hành. Đây là điểm rất thực tế vì nhiều dự án AI hay ở bản demo nhưng khó dùng thật nếu chi phí tăng quá nhanh. Sau khi đo đạc, tác giả thấy chi phí nền cho việc quét tin khoảng 0,30 USD mỗi ngày.
Phần này gần như không phụ thuộc vào số lượng người dùng vì chỉ cần quét một lần cho toàn hệ thống. Chi phí thay đổi theo từng người dùng cho các tác vụ như tóm tắt, tìm kiếm, tạo vector và tạo podcast vào khoảng 0,65 USD/ngày cho mức sử dụng thông thường. Nghĩa là càng nhiều người dùng cùng hệ thống, phần chi phí quét tin chia bình quân càng nhỏ.
- 1 Người dùng có thể tốn khoảng 0,95 USD/ngày nếu tính cả chi phí nền.
- 100 Người dùng thì chi phí chia bình quân rẻ hơn rất nhiều.
- 1.000 Người dùng thì phần chi phí nền gần như không đáng kể trên mỗi người.
- Nếu người dùng chat hoặc nghe podcast nhiều hơn, chi phí sẽ tăng tương ứng.
Bài viết kết lại bằng vài bài học thực tế. Trước hết, MCP giúp việc nối AI với nhiều công cụ trở nên gọn hơn và ít rối hơn. Thay vì viết hàng loạt tích hợp riêng lẻ, tác giả có một cách chuẩn để quản lý tất cả. Thứ hai, dùng PostgreSQL kèm pgvector là lựa chọn rất thực dụng. Nó giúp lưu dữ liệu và tìm kiếm theo ý nghĩa trong cùng một hệ thống, thay vì phải tách ra một kho dữ liệu khác. Thứ ba, việc cung cấp nhiều dạng đầu ra như văn bản, bản tin email và podcast giúp tăng khả năng sử dụng thực tế. Người bận rộn có thể đọc nhanh, nghe nhanh hoặc hỏi tiếp tùy hoàn cảnh. Cuối cùng, tác giả nhấn mạnh rằng chi phí không phải phần phụ. Với các sản phẩm AI, hiểu rõ tiền đi vào đâu, phần nào dùng chung và phần nào tăng theo người dùng là điều bắt buộc nếu muốn triển khai lâu dài.
Vì sao nên đọc các bài tóm tắt trên Insight
Insight giúp bạn nắm được ý chính của một bài dài mà không phải đọc hết toàn bộ từ đầu đến cuối. Với những chủ đề công nghệ như MCP, AI agent hay vector database, điều này đặc biệt hữu ích vì bài gốc thường nhiều thuật ngữ và khá dài. Khi đọc trên Insight, bạn tiết kiệm thời gian nhưng vẫn không bỏ lỡ thông tin cốt lõi. Chúng tôi luôn cố gắng lọc bỏ phần rườm rà, giữ lại những ý quan trọng nhất và diễn giải lại bằng tiếng Việt dễ hiểu, phù hợp với người không chuyên. Lợi ích lớn nhất là bạn có thể theo dõi nhanh những xu hướng mới mà không bị ngợp. Nếu bài gốc nói về một hệ thống nhiều lớp như quét tin, lưu trữ, tìm kiếm, tóm tắt và tạo podcast, bản tóm tắt trên Insight sẽ giúp bạn nhìn ra bức tranh chung trước, rồi mới quyết định có cần đọc sâu thêm hay không. Ngoài ra, Insight giúp bạn đọc nhanh trên điện thoại, trong lúc chờ xe, nghỉ trưa hoặc giữa các cuộc họp.
Mục tiêu là để bạn “nắm được điều đáng biết” trong vài phút, thay vì phải tự sàng lọc cả một bài dài.
Nguồn bài viết
Insight Graph
Khám phá hệ sinh thái 1997 Studio
Nếu bạn đang xây sản phẩm hoặc tăng trưởng, có thể tham khảo thêm các công cụ trong hệ sinh thái để áp dụng nhanh những insight này.
Bài liên quan





