Superlinked es un marco de Python para ingenieros de IA que construyen aplicaciones de búsqueda y recomendación de alto rendimiento que combinan datos estructurados y no estructurados . Verifique la documentación para comenzar.
sentence-transformers , codificadores open-clip y personalizados para números, marcas de tiempo y datos categóricos. Consulte la función y los cuadernos de uso de casos a continuación para ver ejemplos.Si te gusta lo que hacemos, ¡danos una estrella!
Puede consultar una lista completa de nuestras características y conceptos.
Sumerja más profundamente con nuestros cuadernos sobre cómo cada caso de uso se beneficia del marco superlinguido.
Puede consultar una lista completa de ejemplos aquí.
Vamos a construir una búsqueda de productos de comercio electrónico que comprenda las descripciones y calificaciones de productos:
%pip install superlinked
La primera ejecución tardará un minuto en descargar el modelo de incrustación.
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 ()Con un solo comando, puede ejecutar superlinked como un servidor API REST localmente o en su nube con un servidor superlinguido. ¡Obtenga API de ingestión de datos y consultas, incrustando inferencia de modelo e integraciones de base de datos vectoriales de forma gratuita!
Unifique su evaluación, ingestión y servir pilas con una única base de código de Python declarativa. Superlinked permite esto permitiéndole definir su esquema de datos, los índices de vectores y el DAG de cálculo que los vincula a todos a la vez y luego elige el ejecutor adecuado para la tarea: en memoria o servidor.
Si está interesado en aprender más sobre la ejecución a escala, reserve una demostración para un acceso temprano a nuestra nube administrada.
Superlinked almacena sus vectores en su base de datos Vector , con integraciones profundas para:
¿Curiosos sobre Vector Database Pros & Contras en general? Nuestra comunidad comparó 44 bases de datos vectoriales en más de 30 características.
Los registros de marco superlinguesos incluyen información contextual, como el ID de proceso y el alcance del paquete. La información de identificación personal (PII) se filtra de forma predeterminada, pero puede expuesta con el entorno SUPERLINKED_EXPOSE_PII a true .
¿Necesitar ayuda? Estamos aquí para apoyarte:
Cree problemas/discusiones separados para cada tema para ayudarnos a abordar mejor sus comentarios. ¡Gracias por contribuir!