SuperLinked est un cadre Python pour les ingénieurs AI construisant des applications de recherche et de recommandation hautes performances qui combinent des données structurées et non structurées . Vérifiez la documentation pour commencer.
sentence-transformers , d'encodeurs open-clip et personnalisés pour les nombres, les horodatages et les données catégoriques. Voir la fonctionnalité et les cahiers d'utilisation ci-dessous pour des exemples.Si vous aimez ce que nous faisons, donnez-nous une étoile!
Vous pouvez vérifier une liste complète de nos fonctionnalités et concepts.
Plongez plus profondément avec nos cahiers dans la façon dont chaque cas d'utilisation bénéficie du cadre super-lié.
Vous pouvez vérifier une liste complète des exemples ici.
Créons une recherche de produits de commerce électronique qui comprend les descriptions et les notes des produits:
%pip install superlinked
La première course prendra une minute pour télécharger le modèle d'incorporation.
import json
import os
from superlinked import framework as sl
class Product ( sl . Schema ):
id : sl . IdField
description : sl . String
rating : sl . Integer
product = Product ()
description_space = sl . TextSimilaritySpace (
text = product . description , model = "Alibaba-NLP/gte-large-en-v1.5"
)
rating_space = sl . NumberSpace (
number = product . rating , min_value = 1 , max_value = 5 , mode = sl . Mode . MAXIMUM
)
index = sl . Index ([ description_space , rating_space ], fields = [ product . rating ])
# Define your query and parameters to set them directly at query-time
# or let an LLM fill them in for you using the `natural_language_query` param.
# Don't forget to set your OpenAI API key to unlock this feature.
query = (
sl . Query (
index ,
weights = {
description_space : sl . Param ( "description_weight" ),
rating_space : sl . Param ( "rating_weight" ),
},
)
. find ( product )
. similar (
description_space ,
sl . Param (
"description_query" ,
description = "The text in the user's query that refers to product descriptions." ,
),
)
. limit ( sl . Param ( "limit" ))
. with_natural_query (
sl . Param ( "natural_language_query" ),
sl . OpenAIClientConfig ( api_key = os . environ [ "OPEN_AI_API_KEY" ], model = "gpt-4o" )
)
)
# Run the app in-memory (server & Apache Spark executors available too!).
source = sl . InMemorySource ( product )
executor = sl . InMemoryExecutor ( sources = [ source ], indices = [ index ])
app = executor . run ()
# Ingest data into the system - index updates and other processing happens automatically.
source . put ([
{
"id" : 1 ,
"description" : "Budget toothbrush in black color. Just what you need." ,
"rating" : 1 ,
},
{
"id" : 2 ,
"description" : "High-end toothbrush created with no compromises." ,
"rating" : 5 ,
},
{
"id" : 3 ,
"description" : "A toothbrush created for the smart 21st century man." ,
"rating" : 3 ,
},
])
result = app . query ( query , natural_query = "best toothbrushes" , limit = 1 )
# Examine the extracted parameters from your query
print ( json . dumps ( result . knn_params , indent = 2 ))
# The result is the 5-star rated product.
result . to_pandas ()Avec une seule commande, vous pouvez exécuter SuperLinked en tant que serveur API REST localement ou dans votre cloud avec un serveur super-lié. Obtenez l'ingestion de données et les API de requête, l'intégration de l'inférence du modèle d'intégration et de la base de données vectorielle profonde gratuitement!
Unifiez votre évaluation, votre ingestion et votre service avec une base de code Python déclarative unique. SuperLinked permet de vous permettre de définir votre schéma de données, les index vectoriels et le DAG de calcul qui les relie tous en même temps, puis a choisi le bon exécuteur pour la tâche - en mémoire ou serveur.
Si vous souhaitez en savoir plus sur la course à l'échelle, réservez une démo pour un accès précoce à notre cloud géré.
SuperLinked stocke vos vecteurs dans votre base de données vectorielle , avec des intégrations profondes pour:
Curieux des avantages et des inconvénients de la base de données Vector en général? Notre communauté a comparé 44 bases de données vectorielles sur plus de 30 fonctionnalités.
Les journaux de framework super-liés incluent des informations contextuelles, telles que l'ID de processus et la portée du package. Les informations personnellement identifiables (PII) sont filtrées par défaut, mais peuvent être exposées avec la variable d'environnement SUPERLINKED_EXPOSE_PII à true .
Besoin d'aide? Nous sommes ici pour vous soutenir:
Veuillez créer des problèmes / discussions distincts pour chaque sujet pour nous aider à mieux répondre à vos commentaires. Merci d'avoir contribué!