Ceci est le code source de www.gptflix.ai
Nous allons construire un bot GPTFlix QA avec Openai, Pinecone DB et rationalisation. Vous apprendrez à préparer du texte à envoyer à un modèle d'incorporation. Vous capturerez les incorporations et le texte renvoyés du modèle de téléchargement sur Pinecone DB. Ensuite, vous configurerez un index DB de Pinecone et téléchargerez les incorporations OpenAI sur la base de données pour que le bot recherche sur les intégres.
Enfin, nous installerons une application de chat Frontend QA Bot avec Streamlit. Lorsque l'utilisateur pose une question au bot, le bot recherchera le texte du film dans votre Pinecone DB. Il répondra à votre question sur un film basé sur le texte de la DB.
Ceci est censé être un échafaudage de base pour construire vos propres systèmes de rétrommage des connaissances, c'est super basique pour l'instant!
Ce dépôt contient le code source GPTFlix et un guide de déploiement de rationalisation.
Ce dépôt est configuré pour le déploiement sur Streamlit, vous voudrez définir vos variables d'environnement en streamlit comme ceci:
Fourk le repo gptflix sur votre compte GitHub.
Configurez un compte sur pinecone.io
Configurez un compte sur Streamlit Cloud
Créez une nouvelle application sur Streamlit. LIEND LIGNEZ-LE À VOTRE FORK DU REPO SUR GHITHUB, puis pointez l'application vers /chat/main.py
en tant qu'exécutable principal.
Accédez aux paramètres de votre application et accédez à des secrets. Configurez le secret comme ceci:
[API_KEYS]
pinecone = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx"
openai = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
.env
dans la racine du projet avec votre clé API OpenAI sur votre machine locale. PINECONE_API_KEY=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Ceux-ci doivent être vos clés API Pinecone et Openai bien sûr;)
Ce dépôt est configuré pour parcourir une démo à l'aide des données MPST dans / data_samples Ce sont les étapes:
p1.generate_index_mpst.py
pour préparer le texte à partir de ./data_sample/d0.mpst_1k_raw.csv
dans un format que nous pouvons injecter dans un modèle et obtenir son intégration. python p1.generate_index_mpst.py
p2.make_jsonl_for_requests_mpst.py
pour convertir votre nouveau fichier d1.mpst_1k_converted.csv
en un fichier jsonl avec des instructions pour exécuter les demandes d'intégration contre l'API OpenAI. python p2.make_jsonl_for_requests_mpst.py
p3.api_request_parallel_processor.py
sur le fichier JSONL de (2) pour obtenir des incorporations. python src/p3.api_request_parallel_processor.py
--requests_filepath data_sample/d2.embeddings_maker.jsonl
--save_filepath data_sample/d3.embeddings_maker_results.jsonl
--request_url https://api.openai.com/v1/embeddings
--max_requests_per_minute 1500
--max_tokens_per_minute 6250000
--token_encoding_name cl100k_base
--max_attempts 5
--logging_level 20
p4.convert_jsonl_with_embeddings_to_csv.py
avec le nouveau fichier JSONL pour faire un joli CSV avec le texte et les incorporations. python p4.convert_jsonl_with_embeddings_to_csv.py
p5.upload_to_pinecone.py
avec vos paramètres de clé API et de base de données pour télécharger toutes ces données de texte et intégres. python p5.upload_to_pinecone.py
Vous pouvez exécuter l'application localement mais vous devrez supprimer les images (les chemins sont différents sur le cloud rationalisé)
Pour le moment, il existe des données dans Sample_data, toutes tirées de Kaggle comme exemples.
[] Ajouter de la mémoire: résumer les questions / réponses précédentes et représenter pour inviter
[] Ajouter différents modes: recherche plus large dans la base de données
[] Ajouter des modes différents: tons / caractères AI pour les réponses
[] De meilleurs documents
De meilleurs documents à venir bientôt! N'hésitez pas à les contribuer :)
#LICENCE
Licence MIT
Copyright (C) 2023 Stephan Sturges
L'autorisation est accordée gratuitement à toute personne qui obtient une copie de ce logiciel et des fichiers de documentation associés (le "logiciel"), pour traiter le logiciel sans restriction, y compris sans limiter les droits d'utilisation, de copie, de modification, de fusion, de publication, de distribution, de sublince et / ou de vendre des copies des conditions suivantes.
L'avis de droit d'auteur ci-dessus et le présent avis d'autorisation sont inclus dans toutes les copies ou des parties substantielles du logiciel.
Le logiciel est fourni "tel quel", sans garantie d'aucune sorte, express ou implicite, y compris, mais sans s'y limiter, les garanties de qualité marchande, d'adéquation à un usage particulier et de non-contrefaçon. En aucun cas, les auteurs ou les détenteurs de droits d'auteur ne seront pas responsables de toute réclamation, dommage ou autre responsabilité, que ce soit dans une action de contrat, de délit ou autre, découlant de, hors du logiciel ou de l'utilisation ou d'autres relations dans le logiciel.