Felo API PlatformFelo API Platform

Дослідження

Перетворіть одне питання на дослідницький бриф із джерелами

Запитайте веб, збережіть сторінки за відповіддю як Markdown, додайте те, що кажуть практики на X, і тримайте докази в LiveDoc, який можна згодом переглянути.

Час20 хвилинРівеньСереднійОновлено2026-10-29
Для когоЗасновники й операториДослідники ринкуКоманди GTM

Скопіювати промпт

Замініть поля в квадратних дужках і вставте в Claude Code, Codex або AI з доступом до термінала. Він встановить скіл Felo, запитає перед витратою кредитів і запустить процес.

Склади дослідницький бриф із джерелами щодо [питання або рішення].

Обсяг: [ринок, регіон, мова]. Період: [останні 30 днів / останні 12 місяців]. Аудиторія: [хто читатиме]. Глибина: [огляд на одну сторінку / повний бриф].

Створи Markdown-бриф із:
1. Короткою відповіддю з трьох пунктів.
2. Таблицею доказів: твердження, назва джерела, URL, дата публікації.
3. Місцями, де джерела розходяться.
4. Тим, що досі невідомо.
5. Повним списком джерел.

Правила:
- Кожне фактичне твердження потребує посилання на джерело. Відокремлюй факти, думки та власні висновки.
- Ніколи не вигадуй цитати, метрики, дати чи джерела. Відсутні дані — «Даних немає», але не нуль.
- Надавай перевагу первинним джерелам. X використовуй як сигнал від практиків, не як доказ.
- Перетвори період на явні дати початку й кінця та вкажи часовий пояс.
- Перед витратою кредитів покажи заплановані виклики API і дочекайся мого схвалення.
- Не створюй повторюване завдання, не надсилай повідомлення й нічого не публікуй.
- Запиши результат у ./research-brief.md і підсумуй його в чаті.

Копія також містить кроки встановлення й правила безпеки.

Що ви отримаєте

Приклад результату одного запуску. Не живе генерування.

Приклад брифа (фрагмент)

Чи замінять малі моделі великі в ботах підтримки?

Коротка відповідь

  • Малі моделі вже достатні для класифікації та відповідей першої лінії.
  • Вузьке місце — якість пошуку, а не розмір моделі.
  • Команди, що перейшли, повідомляють про нижчу вартість тікета, а не вищу частку рішень.
ТвердженняДжерелоДата
Якість пошуку визначає якість відповідіhttps://example.com/rag-eval2026-10-12
Вартість вирішеного тікета впала на 38%https://example.com/support-case2026-09-28

Де джерела розходяться

Бенчмарки постачальників показують майже паритет; незалежні тести бачать розрив на багатокрокових поверненнях.

Що досі невідомо

Чи розрив закриється кращими інструментами, чи потрібна більша модель.

Точні виклики

Для розробників: той самий процес як код, у порядку виконання.

Показати справжні виклики API
  1. Запитайте веб

    Chat шукає в вебі, упорядковує джерела, пише відповідь і повертає використані ресурси. Збережіть перші три: кожен наступний крок іде за одним із цих посилань. Хелпер надсилає ключ один раз і кидає помилку поза 2xx.

    research.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 }[] };
    };
    
    export async function answer(question: string) {
      const chat = await felo<ChatData>("/v2/chat", { query: question });
      return { answer: chat.data.answer, sources: chat.data.resources.slice(0, 3) };
    }

    Приклад результату

    {
      "answer": "Recent developments include …",
      "sources": [
        { "link": "https://example.com/article", "title": "…" }
      ]
    }
  2. Завантажте сторінки за відповіддю

    Уривка для брифу мало. Завантажте сторінки як Markdown із режимом читання, щоб цитати й заголовки збереглися без шуму навігації. Повторний запит того самого URL може використати кеш вилучення.

    research.ts
    type ExtractData = { data: { content: string } };
    
    const pages = await Promise.all(
      sources.map((source) =>
        felo<ExtractData>("/v2/web/extract", {
          url: source.link,
          output_format: "markdown",
          with_readability: true,
          with_cache: true,
        }).then((page) => ({ ...source, content: page.data.content })),
      ),
    );

    Приклад результату

    // pages[0].content
    "# Example Article\n\nExtracted article content…"
  3. Додайте те, що каже X

    Новини покривають анонси; X показує, із чим люди стикаються на практиці. Шукайте останні сім днів і зберігайте автора та час, щоб бриф приписав кожне твердження. Збільште limit для ширшого кола; кожна сторінка результатів має cursor.

    research.ts
    type XData = {
      data: {
        tweets: {
          content: string;
          author: { username: string };
          created_at: string;
        }[];
      };
    };
    
    const since = Math.floor((Date.now() - 7 * 24 * 60 * 60 * 1000) / 1000);
    
    const social = await felo<XData>("/v2/x/tweet/search", {
      query: question,
      limit: 10,
      since_time: since,
    });

    Приклад результату

    { "data": { "tweets": [
      { "content": "…", "author": { "username": "…" }, "created_at": "…" }
    ] } }
  4. Заархівуйте докази в LiveDoc

    Створіть LiveDoc і додайте джерела як URL-ресурси. API дедуплікує переглянуті URL і повертає resource id на URL, тож наступні питання можуть переглянути ті самі докази без повторного завантаження.

    research.ts
    type LiveDocData = { data: { short_id: string } };
    
    const doc = await felo<LiveDocData>("/v2/livedocs", {
      name: `Research: ${question.slice(0, 60)}`,
      description: "Sources collected while answering the question",
    });
    
    await felo(`/v2/livedocs/${doc.data.short_id}/resources/urls`, {
      urls: sources.map((source) => ({ url: source.link, title: source.title })),
    });
    
    console.log(doc.data.short_id); // keep this for later queries
  5. Запитайте докази пізніше

    Це й перевага: наступне питання робить семантичний пошук у LiveDoc, а не у відкритому вебі. Передавайте resource_ids лише для обмеження відомою підмножиною.

    research.ts
    type Retrieved = {
      data: { title: string; content: string; score: number }[];
    };
    
    async function ask(livedoc: string, query: string) {
      const hits = await felo<Retrieved>(
        `/v2/livedocs/${livedoc}/resources/retrieve`,
        { query },
      );
      return hits.data.filter((hit) => hit.score >= 0.7);
    }

    Приклад результату

    [
      { "title": "…", "content": "…", "score": 0.92 }
    ]

Що входить

  • Відповідь із джерелами з Chat API і сторінки за нею
  • Вилучення повних сторінок як Markdown для найсильніших джерел
  • Пости X з автором і датою як сигнал практиків
  • LiveDoc, що зберігає докази доступними для наступних питань

Чого не робить

  • Лише публічні джерела; платні сторінки й сторінки за входом можуть не працювати
  • Покриття X — сигнал, а не репрезентативне дослідження
  • Без інтерв’ю, приватних даних і платних баз
  • Коли доказів мало, бриф це каже, а не заповнює прогалини
  • Один запуск на промпт; розклад у агенті або cron

Запитання

Звідки джерела?

Chat API повертає використані сторінки, Web Fetch перетворює найсильніші на Markdown, а X Search додає датовані пости практиків. Кожен елемент зберігає URL.

Чи можна досліджувати ринок поза технологіями?

Так. Замініть поле обсягу своїм ринком. Ніші можуть мати менше публічних джерел; бриф позначає ці прогалини замість здогадок.

Чи залишаються докази після запуску?

Так, якщо виконується крок LiveDoc. Повернутий short_id дозволяє наступним питанням переглянути ті самі сторінки без повторного завантаження.

Скільки коштує один бриф?

Оплата в кредитах за використання; актуальні тарифи на сторінці цін. Промпт просить схвалення перед витратою.

Чи можна запускати щотижня?

Так, але цей промпт виконується один раз. Розклад покладіть в агент або cron, що запускає той самий процес.

Якщо джерело за пейволом?

Його пропускають і позначають недоступним. Бриф ніколи не заповнює прогалину вигаданим фактом чи цитатою.

Пов’язані процеси

Адаптуйте

Той самий рецепт, підлаштований під те, як ви насправді працюєте.

Запишіть бриф у файл

Об’єднайте відповідь, уривки сторінок і цитати X у Markdown і передайте інструменту звітів або закомітьте в repo docs. Тримайте посилання на джерела поруч із твердженнями — бриф вартий стільки, скільки його цитати.

Запускайте за розкладом

Обгорніть `answer()` у cron і записуйте кожен бриф у датований файл. Той самий LiveDoc накопичує джерела, четвертий тиждень відповідає доказами перших трьох.

Пропустіть LiveDoc

Якщо вже маєте базу даних, збережіть там відповідь чату й вилучені сторінки. Крок LiveDoc — для пошуку, не для типового сховища.

Довідкові сторінки за цим рецептом і наступні кроки.