Trendr_Bot

À propos
Répondez aux questions du langage naturel sur la tendance de la recherche Google. Ce projet montre comment construire un agent d'IA de base pour répondre aux questions de langue naturelle ouvertes en intégrant une grande quantité de données structurées avec un LLM.
Voici une vue logique:

Explication:
- Étape 1: En fonction de la saisie de l'utilisateur, utilisez un LLM pour vérifier une source de données pertinente
- Étape 2: Interrogez la source de données appariée. Si la source de données pertinente n'existe pas, dites à l'utilisateur et renflouez.
- Étape 3: Prenez les résultats de la sortie des données et fournissez-les pour le contexte pour demander au LLM de répondre à la question
- Étape 4: Renvoyez les résultats à l'utilisateur
Voici l'interface utilisateur du navigateur une fois l'application déployée:

Démo
Essayez la démo en direct hébergé sur GCP Cloud exécuter sur tinyurl.com/trendr-bot.
Installation
Installer les packages requis:
pip install -r requirements.txt
Selon vos préférences, définissez vos variables d'environnement pour Google Cloud:
export GCP_PROJECT=
export GCP_REGION=
Ou mettre à jour config.ini :
[Cloud Configs]
GCP_PROJECT = ADD_HERE
Cette application est déployée sous forme d'interface Web rationalisée. Déployez localement comme suit:
streamlit run app.py
--browser.serverAddress=localhost
--server.enableCORS=false
--server.enableXsrfProtection=false
--server.port 8080
Pour déployer sur GCP Cloud Run, mettez à jour les variables dans le script gcp_cloud_run_deploy.sh et exécutez:
./gcp_cloud_run_deploy.sh
Usage
Une fois l'application exécutée dans le navigateur, vous pouvez poser des questions de base telles que:
Question: What are the top 10 trends in the US for the latest available data? Simply list them in bullet points.
Répondre:
- OJ Simpson
- Real Madrid vs Man City
- Masters 2024
- Éclipse totale 2024
- UFC 300
- Purdue Basketball
- Powerball
- PSG vs Barcelone
- Ligue des champions
- Quelle heure est l'éclipse
Ou vous pouvez également poser des questions plus complexes et nuancées (avec des limitations):
Question: Are there noticeable differences in trends between European and Asian countries?
Répondre:
Différences de tendance entre l'Europe et l'Asie:
Sur la base des données sur les tendances de recherche Google fournies de la semaine du 7 avril 2024, nous pouvons observer certaines différences notables dans les sujets de tendance entre les pays européens et asiatiques:
Europe:
- Dominance of Football : Une grande partie des principales tendances concerne les ligues et matchs de football européens, comme la Ligue des champions ("Ligue des Champions", "Liga Mistzów", etc.), et des jeux spécifiques comme "Man United vs Liverpool". Cela indique un fort intérêt pour le football dans la région européenne.
- Intérêt de l'éclipse solaire : plusieurs pays européens montrent l'intérêt pour la prochaine éclipse solaire le 8 avril 2024, avec des recherches comme "Eclipsa de Soare 2024 Roumanie" et "Sonnenfinfinnis 2024".
- Événements régionaux : Certaines tendances mettent en évidence des événements régionaux ou des personnalités, tels que "Wybory Samorządowe 2024" (élections locales polonaises) et "אבשלום פלד פלד" (une personnalité israélienne).
Asie:
- Variété de sujets : Par rapport à l'Europe, les principales tendances de l'Asie présentent une plus grande variété d'intérêts. Alors que le football ("Man Utd Liverpool", "Arsenal ấu với Bayern") et l'éclipse solaire ("Gerhana Matahari 8 avril 2024") sont présents, il y a aussi un mélange de divertissement, d'événements culturels et de personnalités.
- Entertainment and Culture : Searches like "桜花賞" (a Japanese horse race), "KKR vs CSK" (an Indian Premier League cricket match), and "버거킹 와퍼 판매 종료 이유" (reasons for Burger King Whopper discontinuation in Korea) point towards diverse entertainment and cultural interests.
- Observances religieuses : La présence de "Idul Fitri 2024" et des recherches connexes comme "Niat Sholat Idul Fitri" dans plusieurs pays asiatiques indiquent l'importance de cette fête religieuse dans la région.
Conclusion:
Bien qu'il y ait un chevauchement des sujets de tendance, en particulier avec des événements majeurs comme l'éclipse solaire et les sports populaires, les tendances européennes se penchent davantage vers le football, tandis que les tendances asiatiques présentent un plus large éventail d'intérêts englobant le divertissement, la culture et la religion.
Limites
Ne vous attendez pas à des résultats parfaits pour toutes les questions. Certaines limitations incluent:
- L'ensemble de données publique de Google Trends est mis à jour sporadique
- Même la fenêtre de contexte complète de 1 m fournie par Gemini 1.5 Pro n'est pas assez grande pour contenir l'intégralité de l'ensemble de données publique Google Trends, de sorte que les résultats de la requête sont généralement tronqués lors de la soumission pour analyse
- Avec des points de données limités tels que fournis, le LLM spécule souvent sur la catégorisation ou le contexte des tendances
- En fonction de l'architecture inhérente, la capacité du LLM à effectuer des calculs précis est limité
- L'exécution peut prendre jusqu'à 1 minute. Une simple optimisation serait de mettre en cache les résultats de BigQuery, mais les deux demandes de Gemini 1.5 Pro, dont la seconde a un grand contexte, prendra un certain temps malgré tout.
Technologie
- LLM : Gemini 1.5 Pro (vous pouvez essayer d'autres LLM, mais ils ont besoin d'une très grande fenêtre de contexte)
- Entrepôt de données : BigQuery
- Source de données : BigQuery Google Trends Public Dataset
- Framework Web : rationalisation
- Hébergement Web (facultatif) : GCP Cloud Run