SuperDuper est un cadre basé sur Python pour la création de workflows et d'applications de données AI End-End sur vos propres données, l'intégration avec les principales bases de données. Il prend en charge les dernières technologies et techniques, y compris les LLM, la recherche vectorielle, le chiffon, la multimodalité ainsi que les paradigmes AI et ML classiques.
Les développeurs peuvent tirer parti de SuperDuper en construisant des objets de composition et déclaratifs qui dépassent les détails du déploiement, de l'orchestration et du versioning, et plus encore au moteur SuperDuper. Cela permet aux développeurs d'éviter complètement de mettre en œuvre des MOPL, des pipelines ETL, du déploiement du modèle, de la migration des données et de la synchronisation.
L'utilisation de SuperDuper est simplement " CAPE ": Connectez -vous à vos données, appliquez une IA arbitraire à ces données, package et réutilisez l'application sur des données arbitraires et exécutez des requêtes et des prédictions AI-Database sur les sorties et données AI résultantes.
Connecter
db = superduper ( 'mongodb|postgres|mysql|sqlite|duckdb|snowflake://<your-db-uri>' )
Appliquer
listener = MyLLM ( 'self_hosted_llm' , architecture = 'llama-3.2' , postprocess = my_postprocess ). to_listener ( 'documents' , key = 'txt' )
db . apply ( listener )
Emballer
application = Application ( 'my-analysis-app' , components = [ listener , vector_index ])
template = Template ( 'my-analysis' , component = app , substitutions = { 'documents' : 'table' })
template . export ( 'my-analysis' )
Exécuter
query = db [ 'documents' ]. like ({ 'txt' , 'Tell me about Superduper' }, vector_index = 'my-index' ). select ()
query . execute ()
SuperDuper peut être exécuté n'importe où; Vous pouvez également nous contacter pour en savoir plus sur la plate-forme d'entreprise pour mettre à grande échelle vos workflows SuperDuper.
SuperDuper est suffisamment flexible pour soutenir une vaste gamme de techniques et de paradigmes d'IA. Nous avons une gamme de fonctionnalités prédéfinies dans les répertoires plugins
et templates
. En particulier, SuperDuper excelle lorsque l'IA et les données doivent interagir de manière continue et étroitement intégrée. Voici quelques exemples illustratifs, que vous pouvez essayer de nos modèles:
Nous cherchons à nous connecter avec des développeurs enthousiastes pour contribuer au répertoire de modèles et de flux de travail pré-construits incroyables disponibles dans la source ouverte SuperDuper. Veuillez vous joindre à la discussion, en contribuant les questions et en tirant des demandes!
Component
) à l'aide d'un modèle de programmation déclaratif, qui s'intègre étroitement aux données de votre databackend, en utilisant un ensemble simple de primitives et de classes de base.Component
interdépendants dans une Application
AI-DataComponent
, Model
et Application
testées au combat à l'aide Template
, offrant aux développeurs un point facile pour commencer par des implémentations d'IA difficilesApplication
et le versioning facile à suivre, et à créer un segway élégant du monde de l'IA vers les mondes de données / data databasing / typés.Model
ainsi que des données primaires de DataBackend, pour permettre la dernière génération d'applications AI-Data, y compris toutes les saveurs de la recherche vectorielle, du chiffon et bien plus encore. Flexibilité massive
Combinez n'importe quel modèle d'IA basé sur Python, API de l'écosystème avec les bases de données et les entrepôts testés de bataille les plus établis; Snowflake, MongoDB, Postgres, MySQL, SQL Server, SQLite, BigQuery et Clickhouse sont tous pris en charge.
Intégration transparente en évitant les mlops
Supprimez la nécessité d'implémenter les MLOPS, en utilisant les composants de superduper déclaratifs et de composition, qui spécifient l'état final que les modèles et les données doivent atteindre.
Promouvoir la réutilisabilité du code et la portabilité
Package composants comme modèles, exposant les paramètres clés nécessaires pour réutiliser et communiquer les applications d'IA dans votre communauté et votre organisation.
Économies de coûts
Implémentez la recherche et la génération d'intégration de vecteur sans nécessiter de base de données vectorielle dédiée. Bascule sans effort entre les modèles auto-hébergés et les modèles hébergés par l'API, sans modifications de code majeures.
Passez à la production sans aucun effort supplémentaire
L'API REST de SuperDuper, permet à des modèles installés d'être servis sans travail de développement supplémentaire. Pour l'évolutivité de la note d'entreprise, les coffres-forts d'échec, la sécurité et la journalisation, les applications et les workflows créés avec SuperDuper, peuvent être déployés en un seul clic sur SuperDuper Enterprise.
main
? Nous travaillons sur une version à venir de 0.4.0
. Dans ce communiqué, nous avons:
Component
déclenche les calculs initiaux et les calculs dépendants des données à l'aide de @trigger
Cela permettra une grande diversité de types Component
en plus du Model
bien établi, Listener
, VectorIndex
.
CDC
générale (changement de data-capture)Cela permettra aux développeurs de créer une gamme de fonctionnalités qui réagit aux changements de données entrants
Template
pour permettre des unités réutilisables de fonctionnalité complète Les composants enregistrés sous forme d'instances Template
permettra aux utilisateurs de redéployer facilement leurs implémentations Component
et Application
déjà déployées et testées, sur des sources de données alternatives et avec des paramètres clés basculées pour répondre aux exigences opérationnelles.
Template
concret au projet Ces instances Template
peuvent être appliquées avec SuperDuper avec une simple commande unique
superduper apply <template> '{"variable_1": "value_1", "variable_2": ...}'
ou:
from superduper import templates
app = template ( variable_1 = 'value_1' , variable_2 = 'value_2' , ...)
db . apply ( app )
Vous pouvez désormais afficher les instances de votre Component
, Application
et Template
dans l'interface utilisateur et exécuter des requêtes à l'aide d'instances QueryTemplate
, directement contre le serveur de repos.
superduper start
Installation :
pip install superduper-framework
Voir les modèles pré-construits disponibles:
superduper ls
Connectez et appliquez un modèle prédéfini:
( Remarque: les modèles prédéfinis ne sont pris en charge que par Python 3.10; vous pouvez utiliser toutes les autres fonctionnalités de Python 3.11+. )
# e.g. 'mongodb://localhost:27017/test_db'
SUPERDUPER_DATA_BACKEND= < your-db-uri > superduper apply simple_rag
Exécutez une requête ou une prédiction sur les résultats:
from superduper import superduper
db = superduper ( '<your-db-uri>' ) # e.g. 'mongodb://localhost:27017/test_db'
db [ 'rag' ]. predict ( 'Tell me about superduper' )
Afficher et surveiller tout dans l'interface SuperDuper. De la ligne de commande:
superduper start
Après cela, vous êtes prêt à construire vos propres composants, applications et modèles!
Commencez par la copie d'un modèle existant, dans votre propre environnement de développement:
superduper bootstrap < template_name > --destination templates/my-template
Modifiez le cahier build.ipynb
, pour créer vos propres fonctionnalités.
Si vous avez des problèmes, des questions, des commentaires ou des idées:
[email protected]
.Il existe de nombreuses façons de contribuer, et ils ne se limitent pas à l'écriture de code. Nous accueillons toutes les contributions telles que:
Veuillez consulter notre guide de contribution pour plus de détails.
Merci à ces gens merveilleux:
SuperDuper est open-source et destiné à être un effort communautaire, et cela ne serait pas possible sans votre soutien et votre enthousiasme. Il est distribué en vertu des termes de la licence Apache 2.0. Toute contribution apportée à ce projet sera soumise aux mêmes dispositions.
Nous recherchons des gens sympas qui sont investis dans le problème que nous essayons de résoudre pour nous rejoindre à temps plein. Trouvez des rôles que nous essayons de remplir ici!