Superduper es un marco basado en Python para construir flujos de trabajo y aplicaciones de datos AI de extremo-2 de extremo-2 en sus propios datos, integrándose con las principales bases de datos. Admite las últimas tecnologías y técnicas, incluidas las LLM, la búsqueda vectorial, el trapo, la multimodalidad, así como los paradigmas de IA y ML clásicos.
Los desarrolladores pueden aprovechar el Superduper construyendo objetos compositivos y declarativos que superan los detalles de la implementación, la orquestación y el versiones, y más al motor de superduper. Esto permite a los desarrolladores evitar completamente la implementación de MLOPS, tuberías ETL, implementación del modelo, migración de datos y sincronización.
El uso de Superduper es simplemente " Cape ": conéctese a sus datos, aplique AI arbitraria a esos datos, paquete y reutilice la aplicación en datos arbitrarios y ejecute consultas y predicciones de AI-Database sobre las salidas y datos de IA resultantes.
Conectar
db = superduper ( 'mongodb|postgres|mysql|sqlite|duckdb|snowflake://<your-db-uri>' )
Aplicar
listener = MyLLM ( 'self_hosted_llm' , architecture = 'llama-3.2' , postprocess = my_postprocess ). to_listener ( 'documents' , key = 'txt' )
db . apply ( listener )
Paquete
application = Application ( 'my-analysis-app' , components = [ listener , vector_index ])
template = Template ( 'my-analysis' , component = app , substitutions = { 'documents' : 'table' })
template . export ( 'my-analysis' )
Ejecutar
query = db [ 'documents' ]. like ({ 'txt' , 'Tell me about Superduper' }, vector_index = 'my-index' ). select ()
query . execute ()
Superduper se puede ejecutar en cualquier lugar; También puede comunicarse con nosotros para obtener más información sobre la plataforma Enterprise para llevar los flujos de trabajo de Superduper a la producción a escala.
Superduper es lo suficientemente flexible como para apoyar una gran variedad de técnicas y paradigmas de IA. Tenemos una gama de funcionalidad preconstruida en los directorios de plugins
y templates
. En particular, Superduper se destaca cuando la IA y los datos necesitan interactuar de manera continua e integrada. Aquí hay algunos ejemplos ilustrativos, que puede probar de nuestras plantillas:
Estamos buscando conectarnos con desarrolladores entusiastas para contribuir al repertorio de increíbles plantillas y flujos de trabajo preconstruidos disponibles en Superduper Open-Source. ¡Únase a la discusión, contribuyendo con temas y aplique solicitudes!
Component
) utilizando un modelo de programación declarativo, que se integran estrechamente con los datos en su DataBackend, utilizando un conjunto simple de primitivas y clases base.Component
interrelacionados en una Application
de datos de IAComponent
probado, Model
y las instancias Application
utilizando Template
, lo que brinda a los desarrolladores un punto fácil para comenzar con implementaciones de IA difícilesApplication
y la versiones de seguimiento, y crear una vía seg elegante desde el mundo de la IA a los mundos de datos de datos/ datos tipificados.Model
, así como datos de DatabAckend primarios, para habilitar la última generación de aplicaciones de datos AI, incluidos todos los sabores de la búsqueda de vectores, el trapo y mucho, mucho más. Flexibilidad masiva
Combine cualquier modelo de IA basado en Python, API del ecosistema con las bases de datos y almacenes más establecidos de batalla; El copo de nieve, MongoDB, Postgres, MySQL, SQL Server, SQLite, BigQuery y Clickhouse son compatibles.
Integración perfecta evitando MLOPS
Elimine la necesidad de implementar MLOP, utilizando los componentes del Superduper declarativos y de composición, que especifican el estado final que los modelos y los datos deben alcanzar.
Promover la reutilización del código y la portabilidad
Componentes del paquete como plantillas, exponiendo los parámetros clave necesarios para reutilizar y comunicar aplicaciones de IA en su comunidad y organización.
Ahorro de costos
Implemente la búsqueda de vectores e incrustación de la generación sin requerir una base de datos vectorial dedicada. Alternar sin esfuerzo entre los modelos auto alojados y los modelos alojados API, sin cambios importantes en el código.
Pasar a la producción sin ningún esfuerzo adicional
La API REST de Superduper permite que los modelos instalados se atiendan sin trabajo de desarrollo adicional. Para la escalabilidad de calificación empresarial, Fail Safes, seguridad y registro, aplicaciones y flujos de trabajo creados con Superduper, se pueden implementar con un solo clic en Superduper Enterprise.
main
? Estamos trabajando en un próximo lanzamiento de 0.4.0
. En este lanzamiento tenemos:
Component
desencadena los cálculos iniciales y los cálculos dependientes de los datos usando @trigger
Esto permitirá una gran diversidad de tipos Component
además del Model
bien establecido, Listener
, VectorIndex
.
CDC
general (cambio de datos)Esto permitirá a los desarrolladores crear una variedad de funcionalidades que reaccionan a los cambios de datos entrantes
Template
para habilitar unidades reutilizables de funcionalidad completa Los componentes guardados como instancias Template
permitirán a los usuarios volver a desplegar fácilmente sus implementaciones Component
y Application
ya implementadas, en fuentes de datos alternativas y con parámetros clave alternados para atender a los requisitos operativos.
Template
de concreto al proyecto Estas instancias Template
se pueden aplicar con Superduper con un simple comando simple
superduper apply <template> '{"variable_1": "value_1", "variable_2": ...}'
o:
from superduper import templates
app = template ( variable_1 = 'value_1' , variable_2 = 'value_2' , ...)
db . apply ( app )
Ahora puede ver las instancias de su Component
, Application
y Template
en la interfaz de usuario, y ejecutar consultas utilizando instancias QueryTemplate
, directamente contra el servidor REST.
superduper start
Instalación :
pip install superduper-framework
Vista a las plantillas preconstruidas disponibles:
superduper ls
Conecte y aplique una plantilla previa a la construcción:
( Nota: las plantillas preconstruidas solo son compatibles con Python 3.10; puede usar todas las otras características en Python 3.11+).
# e.g. 'mongodb://localhost:27017/test_db'
SUPERDUPER_DATA_BACKEND= < your-db-uri > superduper apply simple_rag
Ejecutar una consulta o predicción en los resultados:
from superduper import superduper
db = superduper ( '<your-db-uri>' ) # e.g. 'mongodb://localhost:27017/test_db'
db [ 'rag' ]. predict ( 'Tell me about superduper' )
Ver y monitorear todo en la interfaz Superduper. Desde la línea de comando:
superduper start
¡Después de hacer esto, está listo para crear sus propios componentes, aplicaciones y plantillas!
Comience copiando una plantilla existente, a su propio entorno de desarrollo:
superduper bootstrap < template_name > --destination templates/my-template
Edite el cuaderno build.ipynb
, para construir su propia funcionalidad.
Si tiene algún problema, preguntas, comentarios o ideas:
[email protected]
.Hay muchas formas de contribuir, y no se limitan a escribir código. Agradecemos todas las contribuciones como:
Consulte nuestra guía de contribución para obtener más detalles.
Gracias a estas maravillosas personas:
Superduper es de código abierto y tiene la intención de ser un esfuerzo comunitario, y no sería posible sin su apoyo y entusiasmo. Se distribuye bajo los términos de la licencia Apache 2.0. Cualquier contribución realizada a este proyecto estará sujeta a las mismas disposiciones.
Estamos buscando personas agradables que hayan invertido en el problema que estamos tratando de resolver para unirse a nosotros a tiempo completo. ¡Encuentra roles que estamos tratando de llenar aquí!