Felo API PlatformFelo API Platform

Nội dung

Xuất bản bản tin AI hằng ngày mà nhóm bạn thực sự đọc

Lấy bản tóm tắt tin có nguồn, thêm thảo luận của người thực hành trên X, lấy một bản ghi video, dựng bản tin Markdown và lưu vào LiveDoc.

Thời gian25 phútMứcTrung cấpCập nhật2026-10-29
Dành cho aiMarketing & tăng trưởngCreatorProduct marketing

Sao chép prompt

Thay các trường trong ngoặc vuông rồi dán vào Claude Code, Codex hoặc AI có quyền truy cập terminal. Nó cài skill Felo, hỏi trước khi dùng credit và chạy quy trình.

Lập bản tin ngành hằng ngày cho [ngành hoặc chủ đề].

Khung thời gian: 24 giờ qua, múi giờ [múi giờ]. Độc giả: [người đọc].
Danh sách theo dõi (tùy chọn): X [tài khoản hoặc chủ đề], YouTube [kênh], Reddit [cộng đồng].

Chọn 5–8 mục thực sự quan trọng. Với mỗi mục: chuyện gì đã xảy ra, vì sao quan trọng, liên kết nguồn và đó là thông báo, kết quả hay ý kiến.

Các mục:
1. Tin chính.
2. 5–8 mục, mỗi mục có liên kết nguồn.
3. Mọi người nói gì trên X, kèm tài khoản và ngày.
4. Một trích dẫn video kèm mốc thời gian.
5. Điều cần theo dõi tiếp.

Quy tắc:
- Gắn liên kết cho từng mục. Gộp tin trùng và giữ nguồn tốt nhất.
- Tách thông báo khỏi kết quả độc lập; ghi nhãn tuyên bố của nhà cung cấp.
- Chỉ báo số liệu nguồn trả về. Dữ liệu thiếu ghi “Không có dữ liệu”, không bao giờ ghi 0.
- Nếu không có gì đáng kể, hãy nói vậy thay vì độn nội dung.
- Trước khi tiêu tín dụng, hiển thị các lệnh gọi API dự định và chờ tôi phê duyệt.
- Không lên lịch, công bố hay gửi gì.
- Ghi kết quả vào ./daily-brief.md và tóm tắt trong chat.

Bản sao cũng gồm các bước cài đặt và quy tắc an toàn.

Bạn nhận được gì

Kết quả mẫu của một lần chạy. Không phải tạo trực tiếp.

Ví dụ bản tin (trích)

Bản tin ngành AI — 2026-10-30

Tin chính

Một phòng thí nghiệm lớn công bố mô hình nhỏ hơn có dùng công cụ, đạt cùng điểm benchmark với mô hình chủ lực. Tuyên bố của nhà cung cấp; kết quả độc lập còn chờ.

Mục

  1. Mô hình nhỏ, cùng benchmark — benchmark nhà cung cấp, chưa được tái lập. [nguồn]
  2. Ra mắt framework agent — điều khiển tracing và retry mới. [nguồn]

Mọi người nói gì

@example_dev: “Thắng là độ trễ, không phải điểm số.” — 2026-10-30 08:12 JST

Một trích dẫn video

“Chúng tôi ngừng đo token và bắt đầu đo ticket đã giải quyết.” — [12:40]

Theo dõi tiếp

Đánh giá độc lập về dùng công cụ và liệu giá có giữ sau tuần ra mắt.

Các lệnh gọi chính xác

Dành cho lập trình viên: cùng quy trình dưới dạng mã, theo thứ tự chạy.

Hiện lệnh gọi API thật
  1. Dựng tóm tắt có nguồn

    Hỏi Chat tin AI 24 giờ qua và giữ nguồn, ngày được trích.

    digest.ts
    const BASE = "https://openapi.felo.ai";
    const headers = {
      Authorization: `Bearer ${process.env.FELO_API_KEY}`,
      "Content-Type": "application/json",
    };
    
    async function felo<T>(path: string, body?: unknown): Promise<T> {
      const res = await fetch(`${BASE}${path}`, {
        method: body ? "POST" : "GET",
        headers,
        body: body ? JSON.stringify(body) : undefined,
      });
      if (!res.ok) throw new Error(`${res.status}: ${await res.text()}`);
      return res.json() as Promise<T>;
    }
    
    type ChatData = {
      data: {
        answer: string;
        resources: { link: string; title: string; snippet: string }[];
      };
    };
    
    const roundup = await felo<ChatData>("/v2/chat", {
      query: "Biggest AI news stories in the last 24 hours",
    });
    
    const sources = roundup.data.resources.slice(0, 5);

    Kết quả mẫu

    {
      "answer": "The main stories today are …",
      "sources": [
        { "link": "https://example.com/story", "title": "…", "snippet": "…" }
      ]
    }
  2. Thêm thảo luận người thực hành

    Tìm cùng chủ đề trên X và thu bài của người thực hành kèm tài khoản, ngày.

    digest.ts
    type XData = {
      data: {
        tweets: {
          content: string;
          author: { username: string };
          created_at: string;
          metrics: { retweet_count: number; favorite_count: number };
        }[];
        next_cursor: string | null;
        has_next: boolean;
      };
    };
    
    const since = Math.floor((Date.now() - 24 * 60 * 60 * 1000) / 1000);
    
    const social = await felo<XData>("/v2/x/tweet/search", {
      query: "AI agents",
      limit: 20,
      since_time: since,
    });
    
    const posts = social.data.tweets
      .filter((tweet) => tweet.metrics.favorite_count >= 50)
      .slice(0, 3);

    Kết quả mẫu

    { "data": { "tweets": [
      {
        "content": "…",
        "author": { "username": "…" },
        "created_at": "2026-10-29T02:14:00Z",
        "metrics": { "retweet_count": 12, "favorite_count": 180 }
      }
    ] } }
  3. Lấy một bản ghi video

    Dùng YouTube Subtitling cho video liên quan và chọn trích dẫn có timestamp.

    digest.ts
    type SubtitleData = {
      data: {
        title: string;
        contents: { text: string; start: number; duration: number }[];
      };
    };
    
    const videoCode = "dQw4w9WgXcQ"; // replace with today's video id
    
    const video = await felo<SubtitleData>(
      `/v2/youtube/subtitling?video_code=${videoCode}&language=en&with_time=true`,
    );
    
    const transcript = video.data.contents.map((line) => line.text).join(" ");

    Kết quả mẫu

    {
      "title": "Example Video Title",
      "contents": [
        { "text": "Subtitle text", "start": 0.32, "duration": 14.26 }
      ]
    }
  4. Viết bản tin Markdown

    Cấu trúc “tin chính / phản ứng / trích dẫn video / cần theo dõi”.

    digest.ts
    const date = new Date().toISOString().slice(0, 10);
    
    const issue = [
      `# AI digest — ${date}`,
      "",
      "## The roundup",
      roundup.data.answer,
      "",
      "## What practitioners are posting",
      ...posts.map((post) => `- @${post.author.username}: ${post.content}`),
      "",
      "## From the video",
      transcript.slice(0, 1200),
      "",
      "## Sources",
      ...sources.map((source) => `- [${source.title}](${source.link})`),
    ].join("\n");
    
    console.log(issue);
  5. Lưu vào LiveDoc

    Lưu bản tin và nguồn trong LiveDoc để bản sau tra lịch sử.

    digest.ts
    type LiveDocData = { data: { short_id: string } };
    
    const archive = await felo<LiveDocData>("/v2/livedocs", {
      name: "AI digest archive",
      description: "One document resource per daily issue",
    });
    
    await felo(`/v2/livedocs/${archive.data.short_id}/resources/doc`, {
      title: `AI digest — ${date}`,
      content: issue,
    });
    
    type Retrieved = { data: { title: string; content: string; score: number }[] };
    
    const past = await felo<Retrieved>(
      `/v2/livedocs/${archive.data.short_id}/resources/retrieve`,
      { query: "what did we say about agent frameworks last month" },
    ).then((res) => res.data.filter((hit) => hit.score >= 0.7));

    Kết quả mẫu

    [
      { "title": "AI digest — 2026-10-01", "content": "…", "score": 0.88 }
    ]

Bao gồm

  • Tóm tắt tin có nguồn và liên kết
  • Thảo luận người thực hành trên X kèm tài khoản, ngày
  • Một trích dẫn video có timestamp
  • LiveDoc lưu mọi bản tin và cho phép tìm ngữ nghĩa

Không làm gì

  • Chỉ nguồn công khai; nội dung trả phí có thể thiếu
  • X là tín hiệu, không phải khảo sát ý kiến đầy đủ
  • Không tự xuất bản hay gửi bản tin
  • Video cần có phụ đề
  • Một lần chạy mỗi ngày; lịch do agent hoặc cron của bạn

Câu hỏi

Nguồn có đáng tin không?

Mỗi tin có liên kết và ngày; bài X có cả tài khoản và thời gian. Nội dung chưa xác minh không được viết như dữ kiện.

Có đổi ngành được không?

Có. Thay trường chủ đề bằng ngành của bạn và điều chỉnh nguồn, truy vấn X.

Tại sao có video?

Nó thêm góc nhìn người thực hành có timestamp để bản tin không chỉ là tiêu đề. Video không phụ đề bị bỏ qua.

Có đăng lên Slack không?

Không. Nó tạo tệp Markdown; gửi đi là tích hợp của bạn.

Có giữ bản tin cũ không?

Có. LiveDoc lưu mọi bản tin và cho phép tra tin các tuần trước.

Một bản tin tốn bao nhiêu?

Chat, X Search và bản ghi video tính theo mức dùng; giá hiện tại ở trang giá và prompt hỏi duyệt trước khi chi.

Quy trình liên quan

Tùy biến

Cùng công thức, điều chỉnh theo cách bạn thực sự triển khai.

Chỉ một mảng

Giới hạn AI cho code, video hoặc tìm kiếm để chính xác hơn.

Thêm “thay đổi trong tuần”

Tra bản tin trước trong LiveDoc và so sánh phần mới.

Chuyển thành bản tin tuần

Đổi lịch sang hằng tuần để giảm nhiễu hằng ngày.

Các trang tham chiếu đằng sau công thức và nơi đi tiếp.