İçeriğe geç
Twexapi
Türkçe
Esc
gezin⌘Jönizle
Bu sayfada

Haystack

TwexAPI tweet arama ve kullanıcı zaman çizelgesi bileşenleri, yazılı Belgeler, alıntılar ve sayfalandırma ile Haystack RAG işlem hatları oluşturun.

Haystack, Python AI uygulamaları için açık kaynaklı bir çerçevedir. RAG ardışık düzenleri ve aracı iş akışlarındaki güncel tweet’ler için x-api-scraper-haystack kullanın. Entegrasyon salt okunurdur ve hiçbir zaman yazma erişimi vermez.

Entegrasyon iki salt okunur bileşen sağlar:

Herkese açık tweet'leri arayın

‘TwexApiTweetSearch’ anahtar kelimeleri, hashtag’leri, hesapları ve X sorgu operatörlerini ‘POST /twitter/advanced_search/page’ aracılığıyla arar.

Kullanıcı zaman akışını al

TwexApiUserTweetsFetcher, POST /twitter/{screen_name}/timeline/page aracılığıyla bir genel hesabın zaman çizelgesini alır.

Arama, zaman çizelgeleri, izleme ve almayla artırılmış oluşturma için bu bileşenleri kullanın. Bir aracı bir arama aracına ihtiyaç duyduğunda “TwexApiTweetSearch”ü “ComponentTool” ile sarın.

Takipçi dışa aktarma işlemleri için followers API’sini kullanın. Onaylanmış yayınlama için write API’yi kullanın. Bu eylemler bu entegrasyonun dışında kalır.

Haystack ve TwexAPI’yi yükleyin

Python 3.10 veya daha yenisini kullanın. Tekrarlanabilir ardışık düzen yapıları için her iki paketi de sabitleyin.

python -m pip install "x-api-scraper-haystack" "haystack-ai>=3.0.0"

Sanal bir ortamın içine yükleyin.

Bir TwexAPI API anahtarı oluşturun ve bunu yerel olarak dışa aktarın.

export X_API_SCRAPER_KEY="YOUR_API_KEY"

Üretim anahtarlarını hiçbir zaman ardışık düzen YAML’ye, not defterlerine veya kaynak kontrolüne yerleştirmeyin. Ortam değişkenini Haystack ‘Secret’ nesnesi aracılığıyla yükleyin.

Python’da Twitter tweet’lerini arayın

‘TwexApiTweetSearch’, ’POST /twitter/advanced_search/page’i çağırır. X arama sözdizimini kabul eder ve Haystack ‘Document’ nesnelerini döndürür.

from haystack import Pipeline
from haystack.utils import Secret
from haystack_integrations.components.websearch.x_api_scraper import TwexApiTweetSearch

search = TwexApiTweetSearch(
    api_key=Secret.from_env_var("X_API_SCRAPER_KEY"),
    top_k=20,
)

pipeline = Pipeline()
pipeline.add_component("twitter_search", search)

result = pipeline.run(
    {
        "twitter_search": {
            "query": '"retrieval augmented generation" lang:en -filter:retweets'
        }
    }
)

documents = result["twitter_search"]["documents"]
links = result["twitter_search"]["links"]

Son izleme için ’En Son’u kullanın. Etkileşim dereceli keşif için “Üst”ü kullanın. Sıralamalar değişebileceği için tweet kimliklerini saklayın.

Her arama sorgusunu tweet kimliklerinin yanına kaydedin. Her çalıştırmadaki tweet sayısını sınırlamak için ’top_k’yi ayarlayın.

Odaklanmış tweet aramaları oluşturun

Arama amacı Sorgu örneği
Tam ifade "retrieval augmented generation"
Hesap gönderileri from:deepset_ai haystack
Hashtag arama #haystack #rag
Tarih penceresi haystack since:2026-07-01 until:2026-08-01
Yeniden paylaşımları hariç tut haystack -filter:retweets

Tüm sorgu seçenekleri için Gelişmiş Twitter Araması konusuna bakın. Çalıştırma başına aktarırken zaman damgalarını ve imleçleri bileşen başlatma işleminin dışında tutun.

Twitter kullanıcı zaman çizelgesini getir

POST /twitter/{screen_name}/timeline/page için TwexApiUserTweetsFetcher kullanın. Bir ekran adı iletin.

from haystack.utils import Secret
from haystack_integrations.components.websearch.x_api_scraper import (
    TwexApiUserTweetsFetcher,
)

timeline = TwexApiUserTweetsFetcher(
    api_key=Secret.from_env_var("X_API_SCRAPER_KEY"),
    top_k=50,
)

result = timeline.run(screen_name="openai")
documents = result["documents"]

Tek bir hesap için birçok hesap ve zaman çizelgesi aramayı seçin.

Haystack belge alanlarını anlama

Her tweet bir Saman Yığını ‘Belgesi’ haline gelir. Tweet metni ‘Document.content’ olur. Kararlı alanlar meta veriye dönüşür.

Belge alanı Saklanan tweet değeri
content “tam_metin” veya “metin”den Tweet metni
meta.endpoint search or timeline
meta.id, meta.url Mevcut olduğunda Tweet kimliği ve standart URL
meta.created_at Zaman damgası
meta.author Yazar kimliği, kullanıcı adı, ad ve doğrulanmış işaret
meta.like_count, meta.retweet_count, meta.reply_count Beğeniler, yeniden gönderiler ve yanıtlar
meta.quote_count, meta.view_count, meta.bookmark_count Mevcut olduğunda alıntılar, görünümler ve yer imleri

Eksik alanlar eksik kalır. Eksik metriklere asla sıfır muamelesi yapmayın. ‘Bağlantılar’ çıktısı mevcut her ’meta.url’yi içerir.

Kanıtları RAG alıntılarında saklayın

Tweet metnini yerleştirmeden önce tweet kimliklerini ve standart URL’leri saklayın. Bu, sıralama veya katılma sonrasında kanıtları korur.

citation_rows = []

for document in documents:
    tweet_id = document.meta.get("id")
    tweet_url = document.meta.get("url")
    if tweet_id and tweet_url:
        citation_rows.append(
            {
                `tweet_id`: tweet_id,
                "url": tweet_url,
                "created_at": document.meta.get("created_at"),
                "author": document.meta.get("author"),
            }
        )

Alıntılar için sağlanan URL’leri zorunlu kılın. Alınan belgelerde bulunmayan URL’leri reddedin.

Tweet metnini güvenilmeyen içerik olarak değerlendirin

Tweetler hızlı ekleme ve güvenli olmayan URL’ler içerebilir. Tweet metnini asla bir sistem talimatı olarak görmeyin. Tweet’leri talimatlardan ve araç izinlerinden ayrı tutun.

Konuya ve zamana göre erişimi sınırlayın. Tweet kimliklerini, yazarlarını, zaman damgalarını ve URL’lerini koruyun. Alıntı gerektir. Hassas sonuçları gözden geçirin.

Tweetleri indeksleyin veya canlı olarak alın

Canlı getirme

Her soru sırasında en son tweet’leri ve aktif etkinlikleri arayın.

İndekslenmiş corpus

Sabit pencerelerde tekrarlanan araştırmalar için yerleştirmeleri saklayın.

Tweet kayıtlarını yerleştirmelerden ayrı tutun. Tekilleştirme için ’meta.id’yi kullanın.

Yinelenen tweet’ler olmadan sayfalandırma

Her iki bileşen de ‘has_more’ ve ’next_cursor’u döndürür. Talebi değiştirmeden saklayın. İmleçlere opak dizeler gibi davranın.

search = TwexApiTweetSearch(top_k=100)
page = search.run(query="haystack ai")

documents_by_tweet_id = {}

while True:
    for document in page["documents"]:
        tweet_id = document.meta.get("id")
        if tweet_id:
            documents_by_tweet_id[tweet_id] = document

    if not page[`has_more`] or not page["next_cursor"]:
        break

    page = search.run(
        query="haystack ai",
        cursor=page["next_cursor"],
    )

documents = list(documents_by_tweet_id.values())

Her imleci belgelerinden sonra kaydedin. Hiçbir zaman bir imleci düzenlemeyin. Document.meta["id"] üzerinde tekilleştirme.

Haystack işlem hatlarını eşzamansız olarak çalıştırın

Haystack 3 bir ‘Pipeline’ sınıfı kullanır. Her iki TwexAPI bileşeni de ’run_async()’i açığa çıkarıyor.

import asyncio

from haystack import Pipeline
from haystack_integrations.components.websearch.x_api_scraper import TwexApiTweetSearch


async def search_tweets():
    pipeline = Pipeline()
    pipeline.add_component(
        "twitter_search",
        TwexApiTweetSearch(top_k=25),
    )
    return await pipeline.run_async(
        {"twitter_search": {"query": "haystack agents"}}
    )


result = asyncio.run(search_tweets())

Web sunucularında eşzamansız çalıştırmaları kullanın. Komut dosyaları ve zamanlanmış işler için senkronizasyon çalıştırmalarını kullanın.

Hataları işleme

Entegrasyon, TwexAPI istemcisinden HTTP hatalarına neden oluyor. Yeniden denemeden önce durumla ilgili şubeyi açın.

Durum Anlam Aksiyon
400 Geçersiz istek Düzelt. Değiştirmeden tekrar denemeyin.
401 Geçersiz API anahtarı Geçerli bir API anahtarı ekleyin.
403 Erişim engellendi Hesap erişimini ve kredileri kontrol edin.
429 Oran sınırı aşıldı Tekrar denemeden önce geri çekilin.
5xx Geçici sunucu hatası Sınırlı geri çekilmeyle yeniden deneyin.

Kimlik bilgilerini asla değil, durum kodlarını kaydedin. Cap, sınırsız aracı döngülerini önlemek için yeniden dener.

Haystack bileşeni veya doğrudan REST API

İşlem hattınız zaten ‘Belge’ nesnelerini döndürüyor mu? Bu bileşenleri doğrudan ekleyin. Tweet metnini, meta verileri, URL’leri ve sayfalandırmayı normalleştirirler.

Takipçiler, takipler, yanıtlar, alıntılar, listeler, topluluklar, medya, trendler ve onaylı yazılar için doğrudan TwexAPI REST rotalarını veya Python SDK’sını kullanın.

Her iki yaklaşım da aynı TwexAPI sözleşmelerini kullanır. Bileşenler yalnızca tweet aramasını ve kullanıcı zaman çizelgelerini destekler.

MCP aktarma alternatifi

Bir aracı ilk önce uç noktaları keşfettiğinde, toplama için Twexapi MCP kullanın ve satırları manuel olarak Haystack “Document” nesnelerine dönüştürün. İşlem hattı zaten Haystack içinde çalıştığında ve aracı keşfi olmadan yazılan sayfalandırmayı istediğinizde Haystack bileşenlerini tercih edin.

Kaynak ve sözleşmeler

Bu sayfa yardımcı oldu mu?