Felo API PlatformFelo API Platform

Araştırma

Tek bir soruyu kaynaklı araştırma brifine dönüştürün

Web’e sorun, yanıtın arkasındaki sayfaları Markdown olarak kaydedin, X’te uygulayıcıların söylediklerini ekleyin ve kanıtları daha sonra tekrar aranabilen bir LiveDoc’ta tutun.

Süre20 dakikaSeviyeOrtaGüncellendi2026-10-29
Kimler içinKurucular ve operatörlerPazar araştırmacılarıGTM ekipleri

İstemi kopyalayın

Köşeli parantezli alanları değiştirip Claude Code, Codex veya terminal erişimi olan bir AI’ya yapıştırın. Felo becerisini kurar, kredi harcamadan önce sorar ve iş akışını çalıştırır.

[Soru veya karar] için kaynaklı bir araştırma özeti hazırla.

Kapsam: [pazar, bölge, dil]. Dönem: [son 30 gün / son 12 ay]. Hedef kitle: [kim okuyacak]. Derinlik: [tek sayfalık tarama / tam özet].

Markdown özeti şunları içersin:
1. Üç maddede kısa yanıt.
2. Kanıt tablosu: iddia, kaynak başlığı, URL, yayın tarihi.
3. Kaynakların ayrıştığı noktalar.
4. Hâlâ bilinmeyenler.
5. Tam kaynak listesi.

Kurallar:
- Her olgusal iddia için kaynak bağlantısı gerekir. Olguları, görüşleri ve kendi çıkarımlarını ayır.
- Asla alıntı, metrik, tarih veya kaynak uydurma. Veri yoksa “Veri yok” yaz, asla sıfır yazma.
- Birincil kaynakları tercih et. X’i uygulayıcı sinyali olarak kullan, kanıt olarak değil.
- Dönemi açık başlangıç ve bitiş tarihlerine çevir, saat dilimini belirt.
- Kredi harcamadan önce planlanan API çağrılarını göster ve onayımı bekle.
- Yinelenen görev oluşturma, mesaj gönderme ve hiçbir şey yayımlama.
- Sonucu ./research-brief.md dosyasına yaz ve sohbette özetle.

Kopya kurulum adımlarını ve güvenlik kurallarını da içerir.

Ne elde edersiniz

Bir çalıştırmanın örnek çıktısı. Canlı üretim değil.

Örnek brief (alıntı)

Küçük modeller destek botlarında büyüklerin yerini alacak mı?

Kısa yanıt

  • Küçük modeller sınıflandırma ve ilk hat yanıtları için yeterli.
  • Darboğaz model boyutu değil, erişim kalitesi.
  • Geçiş yapan ekipler daha yüksek çözüm oranı değil, daha düşük bilet başına maliyet bildiriyor.
İddiaKaynakTarih
Yanıt kalitesini erişim kalitesi belirlerhttps://example.com/rag-eval2026-10-12
Çözülen bilet başına maliyet %38 düştühttps://example.com/support-case2026-09-28

Kaynakların ayrıştığı nokta

Satıcı kıyaslamaları neredeyse eşit; bağımsız testler çok adımlı iadelerde hâlâ fark görüyor.

Hâlâ bilinmeyen

Farkın daha iyi araçlarla kapanıp kapanmayacağı veya daha büyük model gerekip gerekmediği.

Tam çağrılar

Geliştiriciler için: aynı iş akışı kod olarak, yürütme sırasıyla.

Gerçek API çağrılarını göster
  1. Web’e sorun

    Chat web’i arar, kaynakları sıralar, yanıtı yazar ve kullanılan kaynakları döndürür. İlk üçünü saklayın: her sonraki adım bu bağlantılardan birini izler. Yardımcı anahtarı bir kez gönderir ve 2xx dışında hata fırlatır.

    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) };
    }

    Örnek çıktı

    {
      "answer": "Recent developments include …",
      "sources": [
        { "link": "https://example.com/article", "title": "…" }
      ]
    }
  2. Yanıtın arkasındaki sayfaları indirin

    Bir brif için alıntı yeterli değil. Sayfaları okuma moduyla Markdown olarak indirin, böylece alıntılar ve başlıklar gezinme gürültüsü olmadan kalır. Aynı URL’yi yeniden istemek çıkarım önbelleğini kullanabilir.

    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 })),
      ),
    );

    Örnek çıktı

    // pages[0].content
    "# Example Article\n\nExtracted article content…"
  3. X’in söylediklerini ekleyin

    Haberler duyuruları kapsar; X insanların pratikte neyle karşılaştığını gösterir. Son yedi günü arayın ve yazar ile zamanı saklayın ki brif her iddiayı atfedebilsin. Kapsamı genişletmek için limit artırın; her sonuç sayfasında cursor var.

    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,
    });

    Örnek çıktı

    { "data": { "tweets": [
      { "content": "…", "author": { "username": "…" }, "created_at": "…" }
    ] } }
  4. Kanıtları LiveDoc’ta arşivleyin

    Bir LiveDoc oluşturun ve kaynakları URL kaynağı olarak ekleyin. API görülen URL’leri tekilleştirir ve URL başına resource id döndürür, böylece sonraki sorular aynı kanıtları yeniden indirmeden arayabilir.

    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. Kanıtlara sonra tekrar sorun

    İşte fayda: sonraki soru açık web yerine LiveDoc üzerinde anlamsal arama yapar. resource_ids yalnızca bilinen bir alt kümeye sınırlamak için verin.

    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);
    }

    Örnek çıktı

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

Neler dahil

  • Chat API’den kaynaklı yanıt ve arkasındaki sayfalar
  • En güçlü kaynaklar için tam sayfaların Markdown çıkarımı
  • Yazar ve tarihli X gönderileri uygulayıcı sinyali olarak
  • Kanıtları sonraki sorular için aranabilir tutan LiveDoc

Neleri yapmaz

  • Yalnızca kamuya açık kaynaklar; ücretli veya oturum gerektiren sayfalar başarısız olabilir
  • X kapsamı sinyaldir, temsili araştırma değil
  • Görüşme, özel veri veya ücretli veritabanı yok
  • Kanıt zayıfsa brif boşlukları doldurmak yerine bunu söyler
  • İstem başına bir çalıştırma; zamanlama ajanınızda veya cron’da

Sorular

Kaynaklar nereden geliyor?

Chat API kullanılan sayfaları döndürür, Web Fetch en güçlülerini Markdown’a çevirir ve X Search uygulayıcıların tarihli gönderilerini ekler. Her öğe URL’sini korur.

Teknoloji dışı bir pazarda araştırma yapılabilir mi?

Evet. Kapsam alanını kendi pazarınızla değiştirin. Niş pazarlarda daha az kamuya açık kaynak olabilir; brif tahmin etmek yerine bu boşlukları işaretler.

Kanıtlar çalıştırmadan sonra kalır mı?

LiveDoc adımı çalışırsa evet. Dönen short_id, sonraki soruların aynı sayfaları yeniden indirmeden aramasını sağlar.

Bir brifin maliyeti nedir?

Kullanıma göre krediyle faturalanır; güncel tarifeler fiyat sayfasında. İstem harcamadan önce onay ister.

Her hafta çalıştırılabilir mi?

Evet, ancak bu istem bir kez çalışır. Zamanlamayı aynı iş akışını çalıştıran bir ajana veya cron’a koyun.

Kaynak ödeme duvarının arkasındaysa?

Atlanır ve kullanılamaz olarak işaretlenir. Brif boşluğu asla uydurma bir gerçek veya alıntıyla doldurmaz.

İlgili iş akışları

Kendinize uyarlayın

Aynı tarif, gerçekte nasıl teslim ettiğinize uyarlanmış.

Briri dosyaya yazın

Yanıtı, sayfa alıntılarını ve X alıntılarını Markdown’da birleştirip raporlama aracınıza verin veya docs deposuna commit edin. Kaynak bağlantılarını iddiaların yanında tutun — brif alıntıları kadar değerlidir.

Zamanlanmış çalıştırın

`answer()`i cron’a sarın ve her brifi tarihli dosyaya yazın. Aynı LiveDoc kaynakları biriktirir, dördüncü hafta ilk üç haftanın kanıtlarıyla yanıt verir.

LiveDoc’u atlayın

Zaten bir veritabanınız varsa sohbet yanıtını ve çıkarılan sayfaları orada saklayın. LiveDoc adımı arama içindir, varsayılan depolama değil.

Bu tarifin arkasındaki referans sayfaları ve sonraki adımlar.