O Superlinked é uma estrutura Python para os engenheiros de IA que constroem aplicativos de pesquisa e recomendação de alto desempenho que combinam dados estruturados e não estruturados . Verifique a documentação para começar.
sentence-transformers , open-clip e codificadores personalizados para números, registros de data e hora e dados categóricos. Consulte o recurso e os notebooks de uso de uso abaixo para obter exemplos.Se você gosta do que fazemos, dê -nos uma estrela!
Você pode verificar uma lista completa de nossos recursos e conceitos.
Mergulhe mais profundamente com nossos notebooks em como cada caixa de uso se beneficia da estrutura superlinked.
Você pode verificar uma lista completa de exemplos aqui.
Vamos construir uma pesquisa de produtos de comércio eletrônico que entenda as descrições e classificações do produto:
%pip install superlinked
A primeira corrida levará um minuto para baixar o modelo de incorporação.
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 ()Com um único comando, você pode executar o Superlinked como um servidor de API REST localmente ou em sua nuvem com servidor super reticulado. Obtenha APIs de ingestão de dados e consulta, incorporando a inferência do modelo e as integrações do Deep Vector Database gratuitamente!
Unifique sua avaliação, ingestão e pilhas de servir com uma única base de código Python declarativa. O Superlinked permite isso, permitindo que você defina seu esquema de dados, índices de vetor e o DAG de computação que os vincula de uma só vez e depois escolheu o executor certo para a tarefa - na memória ou servidor.
Se você estiver interessado em aprender mais sobre a corrida em escala, reserve uma demonstração para um acesso antecipado à nossa nuvem gerenciada.
Superlinked armazena seus vetores em seu banco de dados vetorial , com integrações profundas para:
Curioso sobre o Vector Database Pros & Contras em geral? Nossa comunidade comparou 44 bancos de dados de vetores em mais de 30 recursos.
Os logs da estrutura superlinked incluem informações contextuais, como o ID do processo e o escopo do pacote. As informações pessoalmente identificáveis (PII) são filtradas por padrão, mas podem ser expostas com a variável de ambiente SUPERLINKED_EXPOSE_PII para true .
Precisar de ajuda? Estamos aqui para apoiá -lo:
Crie questões/discussões separadas para cada tópico para nos ajudar a abordar melhor seus comentários. Obrigado por contribuir!