O Vemcache é um banco de dados vetorial na memória.
O Vemcache pode ser pensado como o equivalente a Redis para bancos de dados vetoriais.
docker pull faizchishtie/vemcachedocker run --rm -it -p 7070:7070 faizchishtie/vemcache:latest Adicione o seguinte ao seu docker-compose.yml
version: "3.7"
services:
vemcache:
image: faizchishtie/vemcache:latest
ports:
- "7070:7070"
environment:
- VEMCACHE_HOST=0.0.0.0
- VEMCACHE_PORT=7070
- VEMCACHE_SECRET=mysecret
git clone https://github.com/faizchishtie/vemcache.git
cd vemcachemake buildmake run Conecte -se ao Vemcache com um cliente TCP como telnet ou nc .
Use telnet para conectar -se ao Vemcache
telnet 0.0.0.0 7070 Ou use nc
nc 0.0.0.0 7070Depois de conectado, você pode interagir com o servidor Vemcache enviando comandos.
Para inserir um vetor no banco de dados, use o comando Insert seguido pelos valores do vetor:
insert 0.5 0.7 0.2Para inserir um vetor com uma chave especificada, use o comando nomeado_insert seguido pelos valores da chave e do vetor:
named_insert my_vector 0.5 0.7 0.2Para recuperar um vetor do banco de dados usando sua chave, use o comando get seguido pela chave:
get my_vectorPara remover um vetor do banco de dados usando sua chave, use o comando Remover seguido pela chave:
remove my_vectorPara calcular a similaridade do cosseno entre dois vetores, use o comando vcosine seguido pelas chaves dos dois vetores:
vcosine vector1 vector2Para encontrar os vizinhos mais próximos de um vetor, use o comando knn seguido pela chave do vetor de consulta e o valor de k:
knn query_vector 3Para realizar a adição de dois vetores, use o comando vadd seguido pelas chaves dos dois vetores:
vadd vector1 vector2Para realizar a subtração de dois vetores, use o comando vSub seguido pelas chaves dos dois vetores:
vsub vector1 vector2Para dimensionar um vetor por um valor escalar, use o comando vScale seguido pela chave do vetor e pelo valor escalar:
vscale vector1 2.0Para despejar o banco de dados em um arquivo json, use o comando dump seguido pelo caminho para o arquivo:
dump vemcache.jsonPara sair do cliente, pressione Ctrl+C ou Type Quit (se estiver usando Telnet).
Isso conclui o uso básico do Vemcache para operações vetoriais. Para operações mais avançadas e explicações detalhadas de cada comando, consulte a documentação do Vemcache.
# User connects to Vemcache using telnet
$ telnet 0.0.0.0 7070
Trying 0.0.0.0...
Connected to 0.0.0.0.
Escape character is ' ^] ' .
# User inserts a vector with the key "vector_a"
named_insert vector_a 0.5 0.7 0.2
OK
# User inserts another vector with the key "vector_b"
named_insert vector_b 0.1 0.9 0.4
OK
# User retrieves the vector with the key "vector_a"
get vector_a
[0.5, 0.7, 0.2]
# User calculates the cosine similarity between "vector_a" and "vector_b"
vcosine vector_a vector_b
Cosine Similarity: 0.8693
# User finds the nearest neighbor of "vector_a" (k=2)
knn vector_a 2
ID: vector_a, Vector: [0.5, 0.7, 0.2]
ID: vector_b, Vector: [0.1, 0.9, 0.4]
# User performs element-wise addition of "vector_a" and "vector_b"
vadd vector_a vector_b
[0.6, 1.6, 0.6]
# User scales "vector_a" by a factor of 2
vscale vector_a 2.0
[1.0, 1.4, 0.4]
# User removes "vector_a" from the database
remove vector_a
OK
# User attempts to retrieve "vector_a" again (expecting an error)
get vector_a
null
# Dump vemcache db
dump vemcache.json
Database dump successful: vemcache.json
# User exits the session
quit
Connection closed by foreign host.