Skip to content

Instantly share code, notes, and snippets.

@aaronblondeau
Created November 3, 2023 22:31
Show Gist options
  • Save aaronblondeau/deb7354105ed6a2daa07e49502324e5e to your computer and use it in GitHub Desktop.
Save aaronblondeau/deb7354105ed6a2daa07e49502324e5e to your computer and use it in GitHub Desktop.
SurrealDB Demo
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# SurrealDB Feature Exploration\n",
"\n",
"Before using this notebook, run SurrealDB locally:\n",
"\n",
"```\n",
"docker run --rm --pull always -p 8000:8000 -v ${PWD}/data/surrealdb:/mydata surrealdb/surrealdb:latest start --log trace --auth --user admin --pass secret file:/mydata/mydatabase.db\n",
"```\n",
"\n",
"Create virtual environment and install dependencies:\n",
"\n",
"```bash\n",
"python3 -m venv ./venv\n",
"source ./venv/bin/activate\n",
"```\n",
"\n",
"or on Windows (I like to have \"wenv\" for windows so it doesn't clash with a venv created via Windows Subsystem for Linux):\n",
"\n",
"```powershell\n",
"python -m venv ./wenv\n",
".\\wenv\\Scripts\\activate.ps1\n",
"```\n",
"\n",
"Install Jupyter and SurrealDB in your virtual environment:\n",
"\n",
"```\n",
"pip install surrealdb\n",
"pip install notebook\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"from surrealdb import Surreal"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"# Setup a connection for Admin\n",
"db_admin = Surreal(\"http://localhost:8000\")\n",
"await db_admin.connect()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Part 1 - Basic User Auth"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"# Login as Admin\n",
"await db_admin.signin({\"user\": \"admin\", \"pass\": \"secret\"})\n",
"await db_admin.use(\"test\", \"test\")"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': None, 'status': 'OK', 'time': '3.309766ms'},\n",
" {'result': None, 'status': 'OK', 'time': '556.233µs'},\n",
" {'result': None, 'status': 'OK', 'time': '501.22µs'},\n",
" {'result': None, 'status': 'OK', 'time': '734.667µs'},\n",
" {'result': None, 'status': 'OK', 'time': '615.943µs'},\n",
" {'result': None, 'status': 'OK', 'time': '451.572µs'}]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# As Admin, seutp user table\n",
"await db_admin.query('''\n",
" DEFINE TABLE user SCHEMAFULL\n",
" PERMISSIONS\n",
" FOR select, update, delete WHERE id = $auth.id, \n",
" FOR create NONE;\n",
"\n",
" DEFINE FIELD name ON user TYPE string;\n",
" DEFINE FIELD email ON user TYPE string ASSERT string::is::email($value);\n",
" DEFINE FIELD password ON user TYPE string;\n",
" DEFINE INDEX email ON user FIELDS email UNIQUE;\n",
"\n",
" DEFINE SCOPE allusers SESSION 1d\n",
" SIGNIN (\n",
" SELECT * FROM user WHERE email = $email AND crypto::argon2::compare(password, $password)\n",
" )\n",
" SIGNUP (\n",
" CREATE user CONTENT {\n",
" name: $name,\n",
" email: $email,\n",
" password: crypto::argon2::generate($password)\n",
" }\n",
" );\n",
"''')"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"# Setup a connection for Alice\n",
"db_alice = Surreal(\"http://localhost:8000\")\n",
"await db_alice.connect()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpYXQiOjE2OTkwNDk3NzgsIm5iZiI6MTY5OTA0OTc3OCwiZXhwIjoxNjk5MTM2MTc4LCJpc3MiOiJTdXJyZWFsREIiLCJOUyI6InRlc3QiLCJEQiI6InRlc3QiLCJTQyI6ImFsbHVzZXJzIiwiSUQiOiJ1c2VyOjk0czI2MnRjZ294eXA3N2M1dGt4In0.zZVVQtzmWiuxoY7M4SjTAA7vrRsWAwdC_-zXwRbJBn12L-SdIEeAumWSH950eevUU2ILtdG7tXCwRRQQjpe63Q'"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Register Alice\n",
"await db_alice.signup({\n",
"\t'NS': 'test',\n",
"\t'DB': 'test',\n",
"\t'SC': 'allusers',\n",
"\t'email': 'alice@example.com',\n",
"\t'password': 'foobar',\n",
" 'name': 'All-Ice'\n",
"})"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"# Signout Alice\n",
"await db_alice.invalidate()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpYXQiOjE2OTkwNDk3NzgsIm5iZiI6MTY5OTA0OTc3OCwiZXhwIjoxNjk5MTM2MTc4LCJpc3MiOiJTdXJyZWFsREIiLCJOUyI6InRlc3QiLCJEQiI6InRlc3QiLCJTQyI6ImFsbHVzZXJzIiwiSUQiOiJ1c2VyOjk0czI2MnRjZ294eXA3N2M1dGt4In0.zZVVQtzmWiuxoY7M4SjTAA7vrRsWAwdC_-zXwRbJBn12L-SdIEeAumWSH950eevUU2ILtdG7tXCwRRQQjpe63Q'"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Login Alice\n",
"await db_alice.signin({\n",
"\t'NS': 'test',\n",
"\t'DB': 'test',\n",
"\t'SC': 'allusers',\n",
"\t'email': 'alice@example.com',\n",
"\t'password': 'foobar',\n",
"})"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"# Setup a connection for Bob\n",
"db_bob = Surreal(\"http://localhost:8000\")\n",
"await db_bob.connect()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpYXQiOjE2OTkwNDk3NzgsIm5iZiI6MTY5OTA0OTc3OCwiZXhwIjoxNjk5MTM2MTc4LCJpc3MiOiJTdXJyZWFsREIiLCJOUyI6InRlc3QiLCJEQiI6InRlc3QiLCJTQyI6ImFsbHVzZXJzIiwiSUQiOiJ1c2VyOmk0cW94c2ZyMnh1N3F6N2t5NTJkIn0.LPOlpCZ2t2LdVg-gOjgDxAXkPxHF4sgcN_8xJIo54Zzk-VmalVYXhE9xmdPjXYN8RRbtBEjv-g6cRXIhJmy-3w'"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Create a new user\n",
"await db_bob.signup({\n",
"\t'NS': 'test',\n",
"\t'DB': 'test',\n",
"\t'SC': 'allusers',\n",
"\t'email': 'bob@example.com',\n",
"\t'password': 'foobar',\n",
" 'name': 'Ol Bob-O-Rino'\n",
"})"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': [{'email': 'bob@example.com',\n",
" 'id': 'user:i4qoxsfr2xu7qz7ky52d',\n",
" 'name': 'Ol Bob-O-Rino',\n",
" 'password': '$argon2id$v=19$m=19456,t=2,p=1$QG6k3Ns4k05g+VnpdKFBEw$IOuNfOHbbm+pvFfaKQ/eBvrsXXqKbNyR0b/mIeKSdJk'}],\n",
" 'status': 'OK',\n",
" 'time': '255.942µs'}]"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Bob can Fetch Bob\n",
"bob = await db_bob.query('SELECT * FROM user WHERE email = $email', {\n",
"\t'email': 'bob@example.com',\n",
"})\n",
"bob"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': [], 'status': 'OK', 'time': '453.005µs'}]"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Can Alice fetch Bob?\n",
"# This is a weird one, no error is thrown, but the result is empty so permissions must be working. I'd really expect an error here...\n",
"alices_bob = await db_alice.query('SELECT * FROM user WHERE email = $email', {\n",
"\t'email': 'bob@example.com',\n",
"})\n",
"alices_bob"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': [{'email': 'alice@example.com',\n",
" 'id': 'user:94s262tcgoxyp77c5tkx',\n",
" 'name': 'All-Ice',\n",
" 'password': '$argon2id$v=19$m=19456,t=2,p=1$RdI0yRmUuOXFbZpzxEpXhA$KtO44Nl578PVQKR4BY8yb1+Rhp0CK9XBrv+DEWMctCs'}],\n",
" 'status': 'OK',\n",
" 'time': '438.955µs'}]"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Alice can Fetch Alice\n",
"alice = await db_alice.query('SELECT * FROM user WHERE email = $email', {\n",
"\t'email': 'alice@example.com',\n",
"})\n",
"alice"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'email': 'bob@example.com',\n",
" 'id': 'user:i4qoxsfr2xu7qz7ky52d',\n",
" 'name': 'The Bobster',\n",
" 'password': '$argon2id$v=19$m=19456,t=2,p=1$QG6k3Ns4k05g+VnpdKFBEw$IOuNfOHbbm+pvFfaKQ/eBvrsXXqKbNyR0b/mIeKSdJk'}"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Bob can update Bob\n",
"actual_bob = bob[0]['result'][0]\n",
"actual_bob['name'] = 'The Bobster'\n",
"await db_bob.update(actual_bob['id'], actual_bob)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"# Can Alice update Bob?\n",
"# Apparently not, but again, no error is thrown, just an empty result\n",
"actual_bob['name'] = 'A1Ice Hacked You'\n",
"result = await db_alice.update(actual_bob['id'], actual_bob)\n",
"result"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Part 2 - Scope based permissions via relations"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': None, 'status': 'OK', 'time': '899.726µs'}]"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# First, Admin creates organization table - this one is schemaless for fun.\n",
"await db_admin.query('''\n",
" DEFINE TABLE organization SCHEMALESS\n",
"''')"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': None, 'status': 'OK', 'time': '2.708529ms'}]"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Admin creates the organization \"founded\" relation\n",
"await db_admin.query('''\n",
" DEFINE TABLE founded SCHEMALESS\n",
" PERMISSIONS\n",
" FOR select, update, delete WHERE in.id = $auth.id, \n",
" FOR create NONE;\n",
"''')"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': None, 'status': 'OK', 'time': '665.043µs'},\n",
" {'result': None, 'status': 'OK', 'time': '546.586µs'}]"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Next, Admin creates the in and out columns - I want in to be user, out to be organization\n",
"await db_admin.query('''\n",
" DEFINE FIELD in ON TABLE founded TYPE record<user>;\n",
" DEFINE FIELD out ON TABLE founded TYPE record<organization>;\n",
"''')"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': None, 'status': 'OK', 'time': '974.613µs'}]"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# For the heck of it let try using an index to make it so that a user can only found an organization once\n",
"await db_admin.query('''\n",
" DEFINE INDEX unique_founders\n",
" ON TABLE founded\n",
" COLUMNS in, out UNIQUE;\n",
"''')"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': None, 'status': 'OK', 'time': '694.004µs'}]"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Use an event to automatically setup current user as a founder when they create an organization\n",
"# Note that I like the WHEN $event = \"<TYPE>\" syntax below better, but used this which I found in the docs for my create\n",
"await db_admin.query('''\n",
"DEFINE EVENT created ON TABLE organization WHEN $before == NONE THEN {\n",
" RELATE $auth->founded->$after\n",
"}; \n",
"''')"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': None, 'status': 'OK', 'time': '667.587µs'}]"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Cleanup orgs when user deleted (Cascade)\n",
"# This one took me an embarassingly long time to figure out.\n",
"# Core issue is that by the time this event is called, the user is gone so you cannot use $before->founded to reference their organizations.\n",
"#\n",
"# There's probably a better way to do this but I couldn't find it in the docs.\n",
"#\n",
"# What I settled on is using the event to delete ANY organization that is orphaned.\n",
"# \n",
"# This solution is helpful in that it only takes effect when last founder of an organization is deleted.\n",
"#\n",
"# Note, I am using {} instead of () for the THEN which if you must do if using multipe statements (I only had one now but kept the {})\n",
"await db_admin.query('''\n",
"DEFINE EVENT user_deleted ON TABLE user WHEN $event = \"DELETE\" THEN {\n",
" DELETE organization WHERE array::len(<-founded) = 0\n",
"};\n",
"''')\n",
"\n",
"# Fun note, I was using this in the action above to help debug:\n",
"# INSERT INTO logs {\n",
"# event: $event,\n",
"# before: $before,\n",
"# after: $after\n",
"# }"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': None, 'status': 'OK', 'time': '738.723µs'}]"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Now that everything is in place, adjust permissions on org so that only founders can select, update, delete (anyone can create)\n",
"await db_admin.query('''\n",
" DEFINE TABLE organization SCHEMALESS\n",
" PERMISSIONS\n",
" FOR select, update, delete WHERE <-founded.in.id CONTAINS $auth.id, \n",
" FOR create FULL;\n",
"''')"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"# Bob creates an organization\n",
"bob_org = await db_bob.create(\n",
" \"organization\",\n",
" {\n",
" \"name\": \"Bob Inc\",\n",
" \"description\": \"A place for Bob to do Bob things\"\n",
" },\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': [{'description': 'A place for Bob to do Bob things',\n",
" 'id': 'organization:xms7aepykw7l54cz1dsi',\n",
" 'name': 'Bob Inc'}],\n",
" 'status': 'OK',\n",
" 'time': '716.515µs'}]"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Let's try out the relation queries\n",
"await db_bob.query('''\n",
" SELECT * FROM $auth->founded->organization\n",
"''')"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': [], 'status': 'OK', 'time': '278.558µs'}]"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Can alice see it?\n",
"# NOPE\n",
"await db_alice.query('''\n",
" SELECT * FROM organization\n",
"''')"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
"# Alice creates an organization\n",
"alice_org = await db_alice.create(\n",
" \"organization\",\n",
" {\n",
" \"name\": \"Wonderland\",\n",
" \"description\": \"Alice is the coolest\"\n",
" },\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': [{'<-founded': {'in': {'name': ['All-Ice']}},\n",
" 'name': 'Wonderland'},\n",
" {'<-founded': {'in': {'name': ['The Bobster']}}, 'name': 'Bob Inc'}],\n",
" 'status': 'OK',\n",
" 'time': '374.868µs'}]"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Let's get a view of things before we try deletes\n",
"await db_admin.query('''\n",
" SELECT name, <-founded.in.name FROM organization\n",
"''')"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': [{'id': 'founded:c3krepssof5g9msv66e6',\n",
" 'in': 'user:i4qoxsfr2xu7qz7ky52d',\n",
" 'out': 'organization:xms7aepykw7l54cz1dsi'},\n",
" {'id': 'founded:m1j3gaqwt7gcour15wdw',\n",
" 'in': 'user:94s262tcgoxyp77c5tkx',\n",
" 'out': 'organization:0zlvb4kf7cwq1gjhnaeu'}],\n",
" 'status': 'OK',\n",
" 'time': '234.926µs'}]"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"await db_admin.query('''\n",
" SELECT * from founded\n",
"''')"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'description': 'A place for Bob to do Bob things',\n",
" 'id': 'organization:xms7aepykw7l54cz1dsi',\n",
" 'name': 'Bob Inc'}"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Bob deletes his organization\n",
"await db_bob.delete(bob_org[0]['id'])"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': [{'id': 'founded:m1j3gaqwt7gcour15wdw',\n",
" 'in': 'user:94s262tcgoxyp77c5tkx',\n",
" 'out': 'organization:0zlvb4kf7cwq1gjhnaeu'}],\n",
" 'status': 'OK',\n",
" 'time': '114.023µs'}]"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Now there should only be one founded and one organization\n",
"await db_admin.query('''\n",
" SELECT * from founded\n",
"''')"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': [{'<-founded': {'in': {'name': ['All-Ice']}},\n",
" 'name': 'Wonderland'}],\n",
" 'status': 'OK',\n",
" 'time': '392.412µs'}]"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"await db_admin.query('''\n",
" SELECT name, <-founded.in.name FROM organization\n",
"''')"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [],
"source": [
"# Delete Alice (try as Bob first to test perms...)\n",
"# Again no error\n",
"actual_alice = alice[0]['result'][0]\n",
"await db_bob.delete(actual_alice['id'])"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': [{'email': 'alice@example.com',\n",
" 'id': 'user:94s262tcgoxyp77c5tkx',\n",
" 'name': 'All-Ice',\n",
" 'password': '$argon2id$v=19$m=19456,t=2,p=1$RdI0yRmUuOXFbZpzxEpXhA$KtO44Nl578PVQKR4BY8yb1+Rhp0CK9XBrv+DEWMctCs'},\n",
" {'email': 'bob@example.com',\n",
" 'id': 'user:i4qoxsfr2xu7qz7ky52d',\n",
" 'name': 'The Bobster',\n",
" 'password': '$argon2id$v=19$m=19456,t=2,p=1$QG6k3Ns4k05g+VnpdKFBEw$IOuNfOHbbm+pvFfaKQ/eBvrsXXqKbNyR0b/mIeKSdJk'}],\n",
" 'status': 'OK',\n",
" 'time': '150.643µs'}]"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# But Alice still exists\n",
"await db_admin.query('''\n",
" SELECT * FROM user\n",
"''')"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'email': 'alice@example.com',\n",
" 'id': 'user:94s262tcgoxyp77c5tkx',\n",
" 'name': 'All-Ice',\n",
" 'password': '$argon2id$v=19$m=19456,t=2,p=1$RdI0yRmUuOXFbZpzxEpXhA$KtO44Nl578PVQKR4BY8yb1+Rhp0CK9XBrv+DEWMctCs'}"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Now delete Alice entirely\n",
"actual_alice = alice[0]['result'][0]\n",
"await db_alice.delete(actual_alice['id'])"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': [], 'status': 'OK', 'time': '105.095µs'}]"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Now there should be zero founded\n",
"await db_admin.query('''\n",
" SELECT * from founded\n",
"''')"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': [], 'status': 'OK', 'time': '105.279µs'}]"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# And zero organizations\n",
"await db_admin.query('''\n",
" SELECT name, <-founded.in.name FROM organization\n",
"''')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Part 3 - GeoSpatial Support and Route Finding (Graph Stuff)"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [],
"source": [
"# I should've read the docs more closely and noticed that SurrealDB doesn't currently have any way to \"search\" the graph before starting on this..."
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': None, 'status': 'OK', 'time': '989.744µs'}]"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Create a \"node\" table\n",
"await db_admin.query('''\n",
" DEFINE TABLE city SCHEMALESS\n",
" PERMISSIONS\n",
" FOR select, update, delete, create FULL;\n",
"''')"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': None, 'status': 'OK', 'time': '797.904µs'}]"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Define an \"edge\" table (relation in SurrealDB)\n",
"await db_admin.query('''\n",
" DEFINE TABLE connects SCHEMALESS\n",
" PERMISSIONS\n",
" FOR select, update, delete, create FULL;\n",
"''')"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [],
"source": [
"# Create some nodes\n",
"salida = await db_admin.create(\n",
" \"city\",\n",
" {\n",
" \"name\": \"Salida, CO\",\n",
" \"center\": {\n",
" \"type\": \"Point\",\n",
" \"coordinates\": [-105.9918, 38.5363]\n",
" }\n",
" },\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [],
"source": [
"poncha = await db_admin.create(\n",
" \"city\",\n",
" {\n",
" \"name\": \"Poncha Springs, CO\",\n",
" \"center\": {\n",
" \"type\": \"Point\",\n",
" \"coordinates\": [-106.0754, 38.5147]\n",
" }\n",
" },\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [],
"source": [
"sargents = await db_admin.create(\n",
" \"city\",\n",
" {\n",
" \"name\": \"Sargents, CO\",\n",
" \"center\": {\n",
" \"type\": \"Point\",\n",
" \"coordinates\": [-106.4155, 38.4071]\n",
" }\n",
" },\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [],
"source": [
"mears = await db_admin.create(\n",
" \"city\",\n",
" {\n",
" \"name\": \"Mears Junction, CO\", # Not really a city...\n",
" \"center\": {\n",
" \"type\": \"Point\",\n",
" \"coordinates\": [-106.1067, 38.4482]\n",
" }\n",
" },\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': None, 'status': 'OK', 'time': '38.03µs'},\n",
" {'result': [{'distance': 3324.2395899728144, 'name': 'Poncha Springs, CO'},\n",
" {'distance': 5163.204766666214, 'name': 'Salida, CO'},\n",
" {'distance': 11074.11360195695, 'name': 'Mears Junction, CO'},\n",
" {'distance': 34890.71930463785, 'name': 'Sargents, CO'}],\n",
" 'status': 'OK',\n",
" 'time': '143.106µs'}]"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Quick Geo Query\n",
"# Works! Neat!\n",
"await db_admin.query('''\n",
"LET $home = (-106.0511319, 38.5377932);\n",
"SELECT name, \n",
" geo::distance( center, $home) AS distance FROM city\n",
" ORDER BY distance ASC;\n",
"''')"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': [{'description': 'Salida to Poncha via Highway 50.',\n",
" 'distance_meters': 8208,\n",
" 'geometry': {'type': 'LineString',\n",
" 'coordinates': [[-105.991929050997, 38.5357899110908],\n",
" [-106.00303736914094, 38.52420345931668],\n",
" [-106.01672640766147, 38.52420345931668],\n",
" [-106.07675620773186, 38.514546657682644]]},\n",
" 'id': 'connects:dqke0x0ty13ugj2pd8xi',\n",
" 'in': 'city:7k3dergyb1r613aaey7h',\n",
" 'out': 'city:hi4cvxfcvratfbpwj17m'}],\n",
" 'status': 'OK',\n",
" 'time': '820.324µs'}]"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Setup connectons between cities\n",
"\n",
"# Salida to Poncha\n",
"await db_admin.query('''\n",
"RELATE {0}->connects->{1}\n",
"\tCONTENT {{\n",
" distance_meters: 8208,\n",
" geometry: {{\n",
"\t\t\t\"coordinates\": [[-105.991929050997,38.5357899110908],[-106.00303736914094,38.52420345931668],[-106.01672640766147,38.52420345931668],[-106.07675620773186,38.514546657682644]],\n",
"\t\t\t\"type\": \"LineString\"\n",
"\t\t}},\n",
"\t\tdescription: \"Salida to Poncha via Highway 50.\"\n",
"\t}};\n",
"'''.format(salida[0]['id'], poncha[0]['id']))"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': [{'description': 'Poncha to Salida via Highway 50.',\n",
" 'distance_meters': 8208,\n",
" 'geometry': {'type': 'LineString',\n",
" 'coordinates': [[-106.07675620773186, 38.514546657682644],\n",
" [-106.01672640766147, 38.52420345931668],\n",
" [-106.00303736914094, 38.52420345931668],\n",
" [-105.991929050997, 38.5357899110908]]},\n",
" 'id': 'connects:fwu7iuw1nj1d7fhy859w',\n",
" 'in': 'city:hi4cvxfcvratfbpwj17m',\n",
" 'out': 'city:7k3dergyb1r613aaey7h'}],\n",
" 'status': 'OK',\n",
" 'time': '978.353µs'}]"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Poncha to Salida\n",
"await db_admin.query('''\n",
"RELATE {0}->connects->{1}\n",
"\tCONTENT {{\n",
" distance_meters: 8208,\n",
" geometry: {{\n",
"\t\t\t\"coordinates\": [[-106.07675620773186,38.514546657682644],[-106.01672640766147,38.52420345931668],[-106.00303736914094,38.52420345931668],[-105.991929050997,38.5357899110908]],\n",
"\t\t\t\"type\": \"LineString\"\n",
"\t\t}},\n",
"\t\tdescription: \"Poncha to Salida via Highway 50.\"\n",
"\t}};\n",
"'''.format(poncha[0]['id'], salida[0]['id']))"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': [{'description': 'Poncha to Sargents via Highway 50.',\n",
" 'distance_meters': 52947.42,\n",
" 'geometry': {'type': 'LineString',\n",
" 'coordinates': [[-106.07651015233895, 38.514141258441896],\n",
" [-106.20123580386137, 38.541743112478116],\n",
" [-106.29517307684942, 38.55228887889382],\n",
" [-106.41990479758715, 38.40532906721944]]},\n",
" 'id': 'connects:aoiy5ebv3rl2f8hfwza1',\n",
" 'in': 'city:hi4cvxfcvratfbpwj17m',\n",
" 'out': 'city:7vn3svz84q35vzomtuz5'}],\n",
" 'status': 'OK',\n",
" 'time': '755.302µs'}]"
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Poncha to Sargents\n",
"await db_admin.query('''\n",
"RELATE {0}->connects->{1}\n",
"\tCONTENT {{\n",
" distance_meters: 52947.42,\n",
" geometry: {{\n",
"\t\t\t\"coordinates\": [[-106.07651015233895,38.514141258441896],[-106.20123580386137,38.541743112478116],[-106.29517307684942,38.55228887889382],[-106.41990479758715,38.40532906721944]],\n",
"\t\t\t\"type\": \"LineString\"\n",
"\t\t}},\n",
"\t\tdescription: \"Poncha to Sargents via Highway 50.\"\n",
"\t}};\n",
"'''.format(poncha[0]['id'], sargents[0]['id']))"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': [{'description': 'Sargents to Poncha via Highway 50.',\n",
" 'distance_meters': 52947.42,\n",
" 'geometry': {'type': 'LineString',\n",
" 'coordinates': [[-106.41990479758715, 38.40532906721944],\n",
" [-106.29517307684942, 38.55228887889382],\n",
" [-106.20123580386137, 38.541743112478116],\n",
" [-106.07651015233895, 38.514141258441896]]},\n",
" 'id': 'connects:nans32kv8iwd0t9n197v',\n",
" 'in': 'city:7vn3svz84q35vzomtuz5',\n",
" 'out': 'city:hi4cvxfcvratfbpwj17m'}],\n",
" 'status': 'OK',\n",
" 'time': '761.375µs'}]"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Sargents to Poncha\n",
"await db_admin.query('''\n",
"RELATE {0}->connects->{1}\n",
"\tCONTENT {{\n",
" distance_meters: 52947.42,\n",
" geometry: {{\n",
"\t\t\t\"coordinates\": [[-106.41990479758715,38.40532906721944],[-106.29517307684942,38.55228887889382],[-106.20123580386137,38.541743112478116],[-106.07651015233895,38.514141258441896]],\n",
"\t\t\t\"type\": \"LineString\"\n",
"\t\t}},\n",
"\t\tdescription: \"Sargents to Poncha via Highway 50.\"\n",
"\t}};\n",
"'''.format(sargents[0]['id'], poncha[0]['id']))"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': [{'description': 'Sargents to Mears Junction via Marshall Pass.',\n",
" 'distance_meters': 43774.16,\n",
" 'geometry': {'type': 'LineString',\n",
" 'coordinates': [[-106.41881373814766, 38.40255769239485],\n",
" [-106.35594978567742, 38.37372707438621],\n",
" [-106.30929040494584, 38.361965652502874],\n",
" [-106.26253637738894, 38.39124626250381],\n",
" [-106.27909233360832, 38.39332245118982],\n",
" [-106.27141036992249, 38.40359870728486],\n",
" [-106.22545100758092, 38.394983308606584],\n",
" [-106.14982337816161, 38.428193456522564],\n",
" [-106.13172499145941, 38.42749053749009],\n",
" [-106.13808247864762, 38.414104402716276],\n",
" [-106.12801645726607, 38.423962649690054],\n",
" [-106.10714079902147, 38.44790406787445]]},\n",
" 'id': 'connects:p7cz9d33jay3uulgetyg',\n",
" 'in': 'city:7vn3svz84q35vzomtuz5',\n",
" 'out': 'city:7yjffi5sz2l8p7fv1vlm'}],\n",
" 'status': 'OK',\n",
" 'time': '646.537µs'}]"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Sargents to Mears Junction\n",
"await db_admin.query('''\n",
"RELATE {0}->connects->{1}\n",
"\tCONTENT {{\n",
" distance_meters: 43774.16,\n",
" geometry: {{\n",
"\t\t\t\"coordinates\": [[-106.41881373814766,38.40255769239485],[-106.35594978567742,38.37372707438621],[-106.30929040494584,38.361965652502874],[-106.26253637738894,38.39124626250381],[-106.27909233360832,38.39332245118982],[-106.27141036992249,38.40359870728486],[-106.22545100758092,38.394983308606584],[-106.14982337816161,38.428193456522564],[-106.13172499145941,38.42749053749009],[-106.13808247864762,38.414104402716276],[-106.12801645726607,38.423962649690054],[-106.10714079902147,38.44790406787445]],\n",
"\t\t\t\"type\": \"LineString\"\n",
"\t\t}},\n",
"\t\tdescription: \"Sargents to Mears Junction via Marshall Pass.\"\n",
"\t}};\n",
"'''.format(sargents[0]['id'], mears[0]['id']))"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': [{'description': 'Mears Junction to Sargents via Marshall Pass.',\n",
" 'distance_meters': 43774.16,\n",
" 'geometry': {'type': 'LineString',\n",
" 'coordinates': [[-106.10714079902147, 38.44790406787445],\n",
" [-106.12801645726607, 38.423962649690054],\n",
" [-106.13808247864762, 38.414104402716276],\n",
" [-106.13172499145941, 38.42749053749009],\n",
" [-106.14982337816161, 38.428193456522564],\n",
" [-106.22545100758092, 38.394983308606584],\n",
" [-106.27141036992249, 38.40359870728486],\n",
" [-106.27909233360832, 38.39332245118982],\n",
" [-106.26253637738894, 38.39124626250381],\n",
" [-106.30929040494584, 38.361965652502874],\n",
" [-106.35594978567742, 38.37372707438621],\n",
" [-106.41881373814766, 38.40255769239485]]},\n",
" 'id': 'connects:70stgnu2wnxy1ui78ni0',\n",
" 'in': 'city:7yjffi5sz2l8p7fv1vlm',\n",
" 'out': 'city:7vn3svz84q35vzomtuz5'}],\n",
" 'status': 'OK',\n",
" 'time': '636.796µs'}]"
]
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Mears Junction to Sargents\n",
"await db_admin.query('''\n",
"RELATE {0}->connects->{1}\n",
"\tCONTENT {{\n",
" distance_meters: 43774.16,\n",
" geometry: {{\n",
"\t\t\t\"coordinates\": [[-106.10714079902147,38.44790406787445],[-106.12801645726607,38.423962649690054],[-106.13808247864762,38.414104402716276],[-106.13172499145941,38.42749053749009],[-106.14982337816161,38.428193456522564],[-106.22545100758092,38.394983308606584],[-106.27141036992249,38.40359870728486],[-106.27909233360832,38.39332245118982],[-106.26253637738894,38.39124626250381],[-106.30929040494584,38.361965652502874],[-106.35594978567742,38.37372707438621],[-106.41881373814766,38.40255769239485]],\n",
"\t\t\t\"type\": \"LineString\"\n",
"\t\t}},\n",
"\t\tdescription: \"Mears Junction to Sargents via Marshall Pass.\"\n",
"\t}};\n",
"'''.format(mears[0]['id'], sargents[0]['id']))"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': [{'description': 'Mears Junction to Poncha via Highway 285.',\n",
" 'distance_meters': 8207.5,\n",
" 'geometry': {'type': 'LineString',\n",
" 'coordinates': [[-106.10707349508812, 38.4485133782826],\n",
" [-106.07634564034505, 38.514661912860106]]},\n",
" 'id': 'connects:oprhqbhnj36v3nvc38zw',\n",
" 'in': 'city:7yjffi5sz2l8p7fv1vlm',\n",
" 'out': 'city:hi4cvxfcvratfbpwj17m'}],\n",
" 'status': 'OK',\n",
" 'time': '828.763µs'}]"
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Mears Junction to Poncha\n",
"await db_admin.query('''\n",
"RELATE {0}->connects->{1}\n",
"\tCONTENT {{\n",
" distance_meters: 8207.5,\n",
" geometry: {{\n",
"\t\t\t\"coordinates\": [[-106.10707349508812,38.4485133782826],[-106.07634564034505,38.514661912860106]],\n",
"\t\t\t\"type\": \"LineString\"\n",
"\t\t}},\n",
"\t\tdescription: \"Mears Junction to Poncha via Highway 285.\"\n",
"\t}};\n",
"'''.format(mears[0]['id'], poncha[0]['id']))"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': [{'description': 'Poncha to Mears Junction via Highway 285.',\n",
" 'distance_meters': 8207.5,\n",
" 'geometry': {'type': 'LineString',\n",
" 'coordinates': [[-106.07634564034505, 38.514661912860106],\n",
" [-106.10707349508812, 38.4485133782826]]},\n",
" 'id': 'connects:boxebhl1dbq4v8f88g1d',\n",
" 'in': 'city:hi4cvxfcvratfbpwj17m',\n",
" 'out': 'city:7yjffi5sz2l8p7fv1vlm'}],\n",
" 'status': 'OK',\n",
" 'time': '661.547µs'}]"
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Poncha to Mears Junction\n",
"await db_admin.query('''\n",
"RELATE {0}->connects->{1}\n",
"\tCONTENT {{\n",
" distance_meters: 8207.5,\n",
" geometry: {{\n",
"\t\t\t\"coordinates\": [[-106.07634564034505,38.514661912860106],[-106.10707349508812,38.4485133782826]],\n",
"\t\t\t\"type\": \"LineString\"\n",
"\t\t}},\n",
"\t\tdescription: \"Poncha to Mears Junction via Highway 285.\"\n",
"\t}};\n",
"'''.format(poncha[0]['id'], mears[0]['id']))"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': [{'one_hop': ['Poncha Springs, CO', 'Mears Junction, CO'],\n",
" 'two_hop': ['Sargents, CO',\n",
" 'Mears Junction, CO',\n",
" 'Salida, CO',\n",
" 'Sargents, CO',\n",
" 'Poncha Springs, CO']}],\n",
" 'status': 'OK',\n",
" 'time': '1.031628ms'}]"
]
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Make sure connections for two different paths from sargents to salida are setup\n",
"await db_admin.query('''\n",
" SELECT \n",
" -- One Hop Cities\n",
" ->connects->city.name as one_hop,\n",
" -- Two Hop Cities\n",
" ->connects->city->connects->city.name as two_hop\n",
" FROM {0}\n",
"'''.format(sargents[0]['id']))"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': [], 'status': 'OK', 'time': '107.428µs'}]"
]
},
"execution_count": 54,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Try to get distance to go from Sargents to Salida via Poncha (and not Mears Junction)\n",
"# Step 1, see if we can WHERE onto a specific path\n",
"# No errors makes this really hard to debug...\n",
"await db_admin.query('''\n",
" SELECT \n",
" ->connects->(city as dest)\n",
" FROM {0}\n",
" WHERE dest.name = 'Poncha Springs, CO'\n",
"'''.format(sargents[0]['id']))"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': [{'center': {'type': 'Point', 'coordinates': [-106.0754, 38.5147]},\n",
" 'id': 'city:hi4cvxfcvratfbpwj17m',\n",
" 'name': 'Poncha Springs, CO'}],\n",
" 'status': 'OK',\n",
" 'time': '163.666µs'}]"
]
},
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Just to make sure I am basic WHEREing correctly\n",
"await db_admin.query('''\n",
" SELECT \n",
" *\n",
" FROM city\n",
" WHERE name = 'Poncha Springs, CO'\n",
"''')"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {},
"outputs": [],
"source": [
"# Wheels pretty much fell off here...\n",
"# Couldn't find the right syntax to do what I wanted, and it may not even be possible.\n",
"\n",
"# Eventual goal would be able to do a search that finds the shortest path between Sargents and Salida, and lists out the connections."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Part 4 - Vector Queries"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For this section you'll need sentence transformers installed\n",
"\n",
"```\n",
"pip install sentence-transformers\n",
"```\n",
"\n",
"On windows with an Nvidia GPU I used some additional steps to get pytorch installed\n",
"\n",
"https://pytorch.org/get-started/locally/ (use command to get cuda version : nvcc --version)\n",
"\n",
"```\n",
"pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"c:\\Users\\ablon\\Code\\Mine\\SurrealPython\\wenv\\Lib\\site-packages\\tqdm\\auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
" from .autonotebook import tqdm as notebook_tqdm\n"
]
}
],
"source": [
"from sentence_transformers import SentenceTransformer\n",
"model = SentenceTransformer('all-MiniLM-L6-v2')"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {},
"outputs": [],
"source": [
"sentence1 = \"The current educational system is there only to condition you into being a good little consumer.\"\n",
"embedding1 = model.encode(sentence1)"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'embedding': [0.05556343123316765,\n",
" 0.004294418729841709,\n",
" 0.009202364832162857,\n",
" -0.0003290958993602544,\n",
" 0.047453489154577255,\n",
" 0.007652501109987497,\n",
" -0.039665888994932175,\n",
" 0.053681764751672745,\n",
" -0.03310356289148331,\n",
" 0.05484912544488907,\n",
" 0.11046356707811356,\n",
" 0.08009911328554153,\n",
" -9.803618740988895e-05,\n",
" 0.005658614914864302,\n",
" 0.031404729932546616,\n",
" -0.11973253637552261,\n",
" 0.1076618880033493,\n",
" -0.06538268178701401,\n",
" 0.04543856903910637,\n",
" -0.042158860713243484,\n",
" -0.048113495111465454,\n",
" 0.04977067932486534,\n",
" -0.02397429384291172,\n",
" 0.05160760134458542,\n",
" -0.021593283861875534,\n",
" 0.04693783447146416,\n",
" 0.0016731687355786562,\n",
" -0.07758345454931259,\n",
" -0.004819883964955807,\n",
" -0.05560889095067978,\n",
" 0.00022821981110610068,\n",
" 0.04238602891564369,\n",
" 0.0613287016749382,\n",
" -0.020873943343758583,\n",
" 0.013320649974048138,\n",
" 0.002709680935367942,\n",
" 0.10030609369277954,\n",
" -0.024604836478829384,\n",
" -0.049877237528562546,\n",
" -0.03170037642121315,\n",
" -0.02097957767546177,\n",
" -0.0307863038033247,\n",
" -0.07569237798452377,\n",
" -0.036710936576128006,\n",
" 0.03603167459368706,\n",
" -0.03399371728301048,\n",
" 0.019616320729255676,\n",
" -0.10384025424718857,\n",
" 0.016317112371325493,\n",
" 0.00997072272002697,\n",
" -0.07071969658136368,\n",
" -0.026971891522407532,\n",
" 0.04808355122804642,\n",
" -0.07396135479211807,\n",
" -0.031360872089862823,\n",
" -0.002454106230288744,\n",
" -0.007444135379046202,\n",
" -0.0032175208907574415,\n",
" -0.09538063406944275,\n",
" -0.025181293487548828,\n",
" -0.035771444439888,\n",
" -0.02879348397254944,\n",
" -0.014937128871679306,\n",
" 0.021588435396552086,\n",
" 0.0752134621143341,\n",
" 0.016860686242580414,\n",
" -0.12206775695085526,\n",
" 0.032129716128110886,\n",
" -0.03212263062596321,\n",
" -0.03456738963723183,\n",
" -0.01928517408668995,\n",
" -0.030061207711696625,\n",
" 0.043838176876306534,\n",
" 0.08249664306640625,\n",
" 0.09158279746770859,\n",
" -0.04836126044392586,\n",
" 0.011935180053114891,\n",
" -0.020279167219996452,\n",
" 0.05064840987324715,\n",
" 0.0862719714641571,\n",
" 0.06131196767091751,\n",
" 0.006196512375026941,\n",
" -0.03247502073645592,\n",
" -0.04013150557875633,\n",
" -0.032574787735939026,\n",
" -0.0675218477845192,\n",
" -0.030352331697940826,\n",
" -0.07510075718164444,\n",
" 0.0006126918597146869,\n",
" -0.05498056858778,\n",
" 0.09385653585195541,\n",
" 0.04432246461510658,\n",
" 0.07728297263383865,\n",
" 0.034159086644649506,\n",
" 0.03485095873475075,\n",
" -0.05335395038127899,\n",
" -0.0015301810344681144,\n",
" -0.014712231233716011,\n",
" -0.01655210740864277,\n",
" -0.002262298483401537,\n",
" -0.04718276113271713,\n",
" 0.024242736399173737,\n",
" 0.06976485252380371,\n",
" 0.03233395889401436,\n",
" -0.0493481270968914,\n",
" -0.05518311262130737,\n",
" -0.007384073920547962,\n",
" 0.049133848398923874,\n",
" 0.00024943501921370625,\n",
" -0.03736881911754608,\n",
" -0.057643234729766846,\n",
" 0.053280480206012726,\n",
" -0.00015500650624744594,\n",
" 0.03069092333316803,\n",
" 0.01610453613102436,\n",
" -0.004454893991351128,\n",
" 0.02707546204328537,\n",
" -0.02258787490427494,\n",
" 0.0005803564563393593,\n",
" 0.08976402133703232,\n",
" 0.01111428253352642,\n",
" 0.009390752762556076,\n",
" -0.015059933997690678,\n",
" -0.016017241403460503,\n",
" -0.027556296437978745,\n",
" -0.11461587250232697,\n",
" -0.026927443221211433,\n",
" -3.944164480646838e-33,\n",
" -0.019772248342633247,\n",
" 0.07365910708904266,\n",
" 0.013642381876707077,\n",
" -0.03936408832669258,\n",
" -0.06722144782543182,\n",
" 0.008831722661852837,\n",
" 0.013913187198340893,\n",
" 0.010036655701696873,\n",
" 0.028287842869758606,\n",
" -0.007763993460685015,\n",
" 0.10238077491521835,\n",
" 0.06110883504152298,\n",
" -0.022736070677638054,\n",
" 0.09331578016281128,\n",
" 0.10307471454143524,\n",
" 0.050947632640600204,\n",
" -0.09214228391647339,\n",
" 0.023140067234635353,\n",
" 0.06791117042303085,\n",
" 0.06362694501876831,\n",
" -0.04645173251628876,\n",
" -0.024200791493058205,\n",
" 0.026113133877515793,\n",
" -0.049509793519973755,\n",
" -0.039980288594961166,\n",
" -0.03168097138404846,\n",
" 0.001256644376553595,\n",
" 0.053741615265607834,\n",
" 0.06915345788002014,\n",
" -0.029123833402991295,\n",
" -0.021404432132840157,\n",
" -0.01237779576331377,\n",
" -0.06770190596580505,\n",
" -0.06549990922212601,\n",
" 0.0036927792243659496,\n",
" 0.02668856270611286,\n",
" 0.03185464069247246,\n",
" -0.016444986686110497,\n",
" 0.036856669932603836,\n",
" -0.08911557495594025,\n",
" -0.036901529878377914,\n",
" 0.011288943700492382,\n",
" 0.043356139212846756,\n",
" 0.03823259845376015,\n",
" 0.03213158994913101,\n",
" 0.10601028800010681,\n",
" 0.05111658200621605,\n",
" -0.05058038607239723,\n",
" -0.10681338608264923,\n",
" 0.07889239490032196,\n",
" -0.06417623162269592,\n",
" -0.056103453040122986,\n",
" -0.014154612086713314,\n",
" -0.0013610797468572855,\n",
" -0.015564999543130398,\n",
" 0.04352785274386406,\n",
" 0.05357149988412857,\n",
" -0.0034440853632986546,\n",
" -0.09932626038789749,\n",
" -0.10115032643079758,\n",
" -0.08994637429714203,\n",
" 0.003398345783352852,\n",
" 0.007727354299277067,\n",
" -0.05711624026298523,\n",
" -0.04508533328771591,\n",
" 0.06522420793771744,\n",
" 0.024985909461975098,\n",
" 0.0007206499576568604,\n",
" 0.036099981516599655,\n",
" -0.018629660829901695,\n",
" -0.025441505014896393,\n",
" -0.04215044155716896,\n",
" -0.05343443900346756,\n",
" -0.02696552872657776,\n",
" 0.04101177677512169,\n",
" 0.012516682967543602,\n",
" -0.02137807197868824,\n",
" -0.04201481491327286,\n",
" 0.08596152812242508,\n",
" -0.003893299261108041,\n",
" 0.09698068350553513,\n",
" -0.021434227004647255,\n",
" 0.0758882686495781,\n",
" -0.005150539334863424,\n",
" 0.129184752702713,\n",
" 0.0477607324719429,\n",
" 0.05172751098871231,\n",
" -0.006272668484598398,\n",
" 0.08917024731636047,\n",
" 0.027530957013368607,\n",
" 0.007228298112750053,\n",
" -0.030660640448331833,\n",
" -0.038881778717041016,\n",
" 0.1365761011838913,\n",
" 0.03409009799361229,\n",
" 1.572971969847505e-33,\n",
" -0.029684768989682198,\n",
" 0.01694261096417904,\n",
" -0.04980900138616562,\n",
" 0.06341148912906647,\n",
" -0.06189795583486557,\n",
" -0.016678353771567345,\n",
" 0.04098037630319595,\n",
" -0.021025683730840683,\n",
" -0.0479087233543396,\n",
" 0.02157353237271309,\n",
" 0.006296270526945591,\n",
" 0.030035024508833885,\n",
" -0.010959726758301258,\n",
" 0.037293940782547,\n",
" -0.019810067489743233,\n",
" -0.018834754824638367,\n",
" -0.04931391775608063,\n",
" -0.0070377858355641365,\n",
" 0.04403712600469589,\n",
" -0.056244250386953354,\n",
" 0.005150969140231609,\n",
" 0.10919014364480972,\n",
" -0.055476997047662735,\n",
" 0.024388696998357773,\n",
" -0.010799160227179527,\n",
" -0.05582382529973984,\n",
" -0.136243537068367,\n",
" 0.020854365080595016,\n",
" -0.03224502131342888,\n",
" -0.015053885988891125,\n",
" 0.06840737909078598,\n",
" -0.04862231761217117,\n",
" 0.0326046384871006,\n",
" -0.0020928250160068274,\n",
" -0.029294637963175774,\n",
" -0.02435675822198391,\n",
" -0.010797618888318539,\n",
" 0.02716238796710968,\n",
" -0.0706014335155487,\n",
" 0.06029820814728737,\n",
" 0.013245969079434872,\n",
" -0.08020073920488358,\n",
" -0.05683133751153946,\n",
" -0.08347482979297638,\n",
" -0.025971446186304092,\n",
" -0.02873602882027626,\n",
" 0.07617668062448502,\n",
" -0.019452614709734917,\n",
" 0.06888279318809509,\n",
" 0.02325262315571308,\n",
" -0.013508198782801628,\n",
" -0.007225749082863331,\n",
" 0.03598327189683914,\n",
" -0.05825973302125931,\n",
" 0.006921953987330198,\n",
" 0.05683041363954544,\n",
" 0.09268597513437271,\n",
" 0.026885539293289185,\n",
" 0.004916636273264885,\n",
" -0.01331348530948162,\n",
" 0.017239924520254135,\n",
" -0.019914913922548294,\n",
" -0.05113187059760094,\n",
" -0.022660233080387115,\n",
" 0.0726444274187088,\n",
" -0.10037952661514282,\n",
" 0.0439598448574543,\n",
" 0.0978250578045845,\n",
" -0.0381707139313221,\n",
" -0.032591450959444046,\n",
" 0.10666246712207794,\n",
" 0.014333448372781277,\n",
" -0.011060887947678566,\n",
" -0.08993946760892868,\n",
" -0.06294393539428711,\n",
" 0.04363248869776726,\n",
" -0.017691779881715775,\n",
" 0.008431822061538696,\n",
" -0.04801512137055397,\n",
" -0.04109027981758118,\n",
" -0.02567579783499241,\n",
" -0.0528600849211216,\n",
" 0.06362109631299973,\n",
" -0.04971582442522049,\n",
" -0.00034651404712349176,\n",
" -0.048937730491161346,\n",
" 0.006628254894167185,\n",
" -0.13324910402297974,\n",
" -0.002292268443852663,\n",
" 0.010441853664815426,\n",
" -0.02954508736729622,\n",
" -0.0075072371400892735,\n",
" 0.011056031100451946,\n",
" -0.015273768454790115,\n",
" -0.04478270187973976,\n",
" -2.6080561710273287e-08,\n",
" 0.041643328964710236,\n",
" -0.11086749285459518,\n",
" 0.03995637968182564,\n",
" 0.024027913808822632,\n",
" 0.011470837518572807,\n",
" 0.022283539175987244,\n",
" -0.023372715339064598,\n",
" -0.005311159882694483,\n",
" 0.028320154175162315,\n",
" 0.09739430248737335,\n",
" -0.008041012100875378,\n",
" 0.022894661873579025,\n",
" 0.01804758422076702,\n",
" -0.020842984318733215,\n",
" 0.127645343542099,\n",
" 0.09482108801603317,\n",
" 0.08351132273674011,\n",
" -0.06387430429458618,\n",
" -0.04454030469059944,\n",
" 0.08102548122406006,\n",
" 0.054134707897901535,\n",
" 0.02690291218459606,\n",
" -0.00748200248926878,\n",
" 0.04080050811171532,\n",
" -0.06397181004285812,\n",
" 0.024690626189112663,\n",
" 0.062495771795511246,\n",
" -0.0029274499975144863,\n",
" -0.025600772351026535,\n",
" 0.02268575318157673,\n",
" 0.005059367977082729,\n",
" -0.020120473578572273,\n",
" 0.00836583785712719,\n",
" -0.052283983677625656,\n",
" 0.03990040719509125,\n",
" -0.038568221032619476,\n",
" -0.057027045637369156,\n",
" 0.028112314641475677,\n",
" 0.0076384395360946655,\n",
" -0.025302402675151825,\n",
" -0.08269116282463074,\n",
" -0.07811449468135834,\n",
" 0.02586652897298336,\n",
" 0.08300485461950302,\n",
" 0.017014143988490105,\n",
" 0.03536681830883026,\n",
" -0.04118141531944275,\n",
" -0.004788470454514027,\n",
" 0.03997788950800896,\n",
" 0.09663501381874084,\n",
" -0.025234876200556755,\n",
" -0.01841381937265396,\n",
" 0.02665531449019909,\n",
" -0.12789689004421234,\n",
" 0.02569139003753662,\n",
" -0.03646022081375122,\n",
" 0.0677681565284729,\n",
" -0.01034536026418209,\n",
" -0.05620076507329941,\n",
" 0.018822386860847473,\n",
" 0.08596796542406082,\n",
" 0.00078419572673738,\n",
" 0.051737599074840546,\n",
" 0.07829482108354568],\n",
" 'id': 'context:c1',\n",
" 'text': 'The current educational system is there only to condition you into being a good little consumer.'}"
]
},
"execution_count": 59,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"await db_admin.create(\n",
" \"context:c1\",\n",
" {\n",
" \"text\": sentence1,\n",
" # This didn't work : Object of type ndarray is not JSON serializable\n",
" # \"embedding\": embedding1\n",
" # This does work\n",
" \"embedding\": embedding1.tolist()\n",
" },\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'embedding': [0.03942417725920677,\n",
" -0.028966505080461502,\n",
" 0.03487392142415047,\n",
" 0.03160249441862106,\n",
" -0.028416521847248077,\n",
" -0.025273559615015984,\n",
" 0.018805529922246933,\n",
" 0.03589262068271637,\n",
" 0.01960798166692257,\n",
" 0.05399400740861893,\n",
" 0.044517721980810165,\n",
" -0.07303101569414139,\n",
" -0.0015130022075027227,\n",
" 0.013144866563379765,\n",
" -0.02350962720811367,\n",
" 0.017959600314497948,\n",
" -0.004997747018933296,\n",
" -0.03788933530449867,\n",
" -0.03834698721766472,\n",
" -0.02459278330206871,\n",
" -0.04329688847064972,\n",
" -0.0165939312428236,\n",
" 0.017263304442167282,\n",
" 0.02998252958059311,\n",
" 0.042083535343408585,\n",
" 0.10422585159540176,\n",
" -0.01120177935808897,\n",
" -0.06659144908189774,\n",
" -0.06923587620258331,\n",
" 0.01277244370430708,\n",
" -0.02740815281867981,\n",
" 0.02627236396074295,\n",
" -0.09566247463226318,\n",
" 0.050730492919683456,\n",
" 0.028854286298155785,\n",
" 0.018870970234274864,\n",
" 0.0458529070019722,\n",
" 0.009027459658682346,\n",
" 0.07054361701011658,\n",
" 0.06351760774850845,\n",
" -0.01677323877811432,\n",
" 0.04831766337156296,\n",
" 0.04706357792019844,\n",
" 0.008952045813202858,\n",
" 0.031007887795567513,\n",
" -0.02635190822184086,\n",
" 0.0034532970748841763,\n",
" -0.0006550716934725642,\n",
" 0.023300064727663994,\n",
" 0.009916428476572037,\n",
" -0.013930194079875946,\n",
" -0.024388201534748077,\n",
" -0.11209459602832794,\n",
" 0.015168333426117897,\n",
" 0.028684906661510468,\n",
" 0.06215183436870575,\n",
" 0.021687207743525505,\n",
" -0.03686701878905296,\n",
" -0.0032895102631300688,\n",
" 0.052042245864868164,\n",
" -0.07136967778205872,\n",
" 0.039259664714336395,\n",
" -0.0004542133247014135,\n",
" 0.01405126042664051,\n",
" -0.03292215242981911,\n",
" -0.023662185296416283,\n",
" 0.054887138307094574,\n",
" 0.0684266984462738,\n",
" 0.007099841721355915,\n",
" 0.04603107273578644,\n",
" 0.005188197363168001,\n",
" 0.09421506524085999,\n",
" -0.06020282953977585,\n",
" 0.12147198617458344,\n",
" 0.09057663381099701,\n",
" 0.013037382625043392,\n",
" 0.07022902369499207,\n",
" 0.056415680795907974,\n",
" 0.07758264988660812,\n",
" 0.012698143720626831,\n",
" -0.028934180736541748,\n",
" 0.02814009226858616,\n",
" -0.04338698834180832,\n",
" 0.013616730459034443,\n",
" 0.046136487275362015,\n",
" -0.06990507990121841,\n",
" -0.015538543462753296,\n",
" -0.02644645795226097,\n",
" 0.010740619152784348,\n",
" 0.010770286433398724,\n",
" 0.0188426673412323,\n",
" -0.11288075894117355,\n",
" -0.01296324748545885,\n",
" 0.01406469289213419,\n",
" -0.04461154714226723,\n",
" -0.059086576104164124,\n",
" -0.039392102509737015,\n",
" -0.0410994328558445,\n",
" 0.0576651506125927,\n",
" 0.10027241706848145,\n",
" -0.050920553505420685,\n",
" 0.009051788598299026,\n",
" 0.059131182730197906,\n",
" 0.08816102892160416,\n",
" 0.009366109035909176,\n",
" 0.030611222609877586,\n",
" -0.0005782642401754856,\n",
" 0.04482283443212509,\n",
" 0.04327201470732689,\n",
" 0.03799906745553017,\n",
" 0.0226732324808836,\n",
" -0.016430925577878952,\n",
" -0.03091818280518055,\n",
" 0.0038605318404734135,\n",
" -0.027303120121359825,\n",
" 0.08881089091300964,\n",
" 0.05251066014170647,\n",
" 0.01073777861893177,\n",
" -0.00032750930404290557,\n",
" -0.027685044333338737,\n",
" -0.03130287304520607,\n",
" 0.0013148864964023232,\n",
" -0.022851884365081787,\n",
" -0.006908097304403782,\n",
" -0.0914023295044899,\n",
" -0.11692706495523453,\n",
" 0.00041801933548413217,\n",
" -6.339894333993632e-33,\n",
" 0.010996607132256031,\n",
" 0.017722558230161667,\n",
" 0.018549852073192596,\n",
" 0.11754840612411499,\n",
" -0.003145806724205613,\n",
" 0.04730520397424698,\n",
" -0.005666153039783239,\n",
" 0.045705877244472504,\n",
" -0.06937083601951599,\n",
" -0.006225838791579008,\n",
" 9.786187001736835e-05,\n",
" 0.026717068627476692,\n",
" -0.03651266545057297,\n",
" 0.023112565279006958,\n",
" 0.02224794775247574,\n",
" 0.12309467047452927,\n",
" -0.04962731525301933,\n",
" 0.059221141040325165,\n",
" 0.05005037784576416,\n",
" 0.03474630042910576,\n",
" 0.0299391970038414,\n",
" -0.00622074818238616,\n",
" 0.032785508781671524,\n",
" -0.02041163668036461,\n",
" 0.013237242586910725,\n",
" -0.09819958359003067,\n",
" -0.004121681209653616,\n",
" -0.0031455315183848143,\n",
" -0.00043562334030866623,\n",
" -0.0008302510832436383,\n",
" -0.04842798784375191,\n",
" 0.015637220814824104,\n",
" -0.026722773909568787,\n",
" -0.11356770992279053,\n",
" 0.07071284204721451,\n",
" -0.07766487449407578,\n",
" 0.030709639191627502,\n",
" -0.05890495330095291,\n",
" -0.017547277733683586,\n",
" -0.030998973175883293,\n",
" -0.00428371736779809,\n",
" -0.05674007534980774,\n",
" -0.017173554748296738,\n",
" -0.05667073279619217,\n",
" -0.00014102166460361332,\n",
" 0.009664727374911308,\n",
" 0.04894175007939339,\n",
" -0.027307316660881042,\n",
" 0.05095800757408142,\n",
" 0.030484475195407867,\n",
" -0.08826688677072525,\n",
" -0.058060888200998306,\n",
" 0.03529617190361023,\n",
" -0.023408235982060432,\n",
" -0.019628947600722313,\n",
" -0.03068782202899456,\n",
" 0.07529895752668381,\n",
" -0.030101466923952103,\n",
" -0.015106826089322567,\n",
" 0.012971175834536552,\n",
" -0.05967918783426285,\n",
" -0.017564982175827026,\n",
" 0.0021492515224963427,\n",
" 0.07756220549345016,\n",
" 0.007618543226271868,\n",
" 0.010347912088036537,\n",
" -0.04863625392317772,\n",
" 0.044602714478969574,\n",
" 0.06341478228569031,\n",
" 0.000434416375355795,\n",
" -0.04944302514195442,\n",
" -0.02593156322836876,\n",
" -0.1155017837882042,\n",
" 0.009386982768774033,\n",
" -0.0509536936879158,\n",
" 0.011014501564204693,\n",
" -0.00910925306379795,\n",
" -0.015695296227931976,\n",
" -0.009973444975912571,\n",
" -0.08954038470983505,\n",
" 0.10453679412603378,\n",
" -0.018361220136284828,\n",
" 0.04444832727313042,\n",
" 0.02063450589776039,\n",
" 0.0799982026219368,\n",
" 0.06786037236452103,\n",
" -0.0507161021232605,\n",
" -0.06136306747794151,\n",
" 0.01814623549580574,\n",
" 0.016373146325349808,\n",
" -0.008534969761967659,\n",
" -0.01875469833612442,\n",
" 0.016764529049396515,\n",
" -0.0008242271724157035,\n",
" -0.005601481068879366,\n",
" 3.349687967419221e-33,\n",
" 0.034819431602954865,\n",
" 0.03973652049899101,\n",
" 0.02544880099594593,\n",
" -0.0015731295570731163,\n",
" 0.10872673243284225,\n",
" -0.12464772909879684,\n",
" 0.010637491010129452,\n",
" -0.025545192882418633,\n",
" 0.04102570191025734,\n",
" 0.007796102203428745,\n",
" 0.09447683393955231,\n",
" -0.02925744839012623,\n",
" 0.08055366575717926,\n",
" 0.05569528788328171,\n",
" 0.04552247375249863,\n",
" 0.013151662424206734,\n",
" 0.08590628206729889,\n",
" 0.026816949248313904,\n",
" -0.07350186258554459,\n",
" -0.043227776885032654,\n",
" -0.08413349092006683,\n",
" -0.007904600352048874,\n",
" -0.010731899179518223,\n",
" 0.0079296650364995,\n",
" -0.03403344377875328,\n",
" -0.07567161321640015,\n",
" -0.013588495552539825,\n",
" 0.02658688649535179,\n",
" -0.06161954253911972,\n",
" 0.0007801383617334068,\n",
" 0.022941093891859055,\n",
" -0.007837767712771893,\n",
" -0.003180956467986107,\n",
" -0.05064604803919792,\n",
" -0.09389619529247284,\n",
" 0.02369924634695053,\n",
" -0.06510864198207855,\n",
" -0.04791971296072006,\n",
" 0.029331263154745102,\n",
" -0.04037298634648323,\n",
" 0.07974320650100708,\n",
" -0.115145243704319,\n",
" 0.014810511842370033,\n",
" 0.04054168984293938,\n",
" -0.013627768494188786,\n",
" 0.0472027026116848,\n",
" -0.0379534587264061,\n",
" 0.04237267002463341,\n",
" 0.03674521669745445,\n",
" 0.033210959285497665,\n",
" -0.10707084089517593,\n",
" -0.08745736628770828,\n",
" 0.08902743458747864,\n",
" 0.030533751472830772,\n",
" 0.0459921695291996,\n",
" -0.041608717292547226,\n",
" 0.031411778181791306,\n",
" -0.06696669012308121,\n",
" -0.03141063079237938,\n",
" 0.029658524319529533,\n",
" 0.04128078371286392,\n",
" -0.009801572188735008,\n",
" -0.12270623445510864,\n",
" -0.03259044140577316,\n",
" -0.1139848604798317,\n",
" -0.04673903435468674,\n",
" -0.08356223255395889,\n",
" -0.04431872069835663,\n",
" -0.08872272074222565,\n",
" 0.10472618788480759,\n",
" 0.07297972589731216,\n",
" 0.07513940334320068,\n",
" -0.08987966924905777,\n",
" -0.044153712689876556,\n",
" -0.09142844378948212,\n",
" 0.022102264687418938,\n",
" 0.03256796672940254,\n",
" 0.08102976530790329,\n",
" 0.042528267949819565,\n",
" -0.03767116740345955,\n",
" -0.020489482209086418,\n",
" -0.03577304631471634,\n",
" 0.025849221274256706,\n",
" -0.022029660642147064,\n",
" 0.02753305248916149,\n",
" -0.08466365188360214,\n",
" 0.019722500815987587,\n",
" -0.029919037595391273,\n",
" 0.03704012557864189,\n",
" -0.0069266026839613914,\n",
" -0.0010049197589978576,\n",
" -0.008645372465252876,\n",
" 0.07069520652294159,\n",
" -0.059609487652778625,\n",
" -0.08805245161056519,\n",
" -1.6423607362980874e-08,\n",
" -0.03695381432771683,\n",
" -0.024575669318437576,\n",
" 0.0021488587372004986,\n",
" -0.028144480660557747,\n",
" -0.040761690586805344,\n",
" 0.04749785363674164,\n",
" 0.07306743413209915,\n",
" -0.016659999266266823,\n",
" 0.041338976472616196,\n",
" -0.02863464690744877,\n",
" -0.014408647082746029,\n",
" -0.046226274222135544,\n",
" -0.012546412646770477,\n",
" 0.002626060275360942,\n",
" 0.06541702896356583,\n",
" 0.06705889850854874,\n",
" 0.08002825081348419,\n",
" 0.060360491275787354,\n",
" -0.020288566127419472,\n",
" -0.01685008965432644,\n",
" 0.005217957776039839,\n",
" -0.05178746581077576,\n",
" 0.11067887395620346,\n",
" 0.16606096923351288,\n",
" -0.01846872828900814,\n",
" 0.0404614619910717,\n",
" 0.10259922593832016,\n",
" 0.1210208460688591,\n",
" 0.006788693368434906,\n",
" 0.14095033705234528,\n",
" 0.014488299377262592,\n",
" 0.017006831243634224,\n",
" -0.0031870275270193815,\n",
" -0.03751441836357117,\n",
" -0.022925475612282753,\n",
" -0.07535967975854874,\n",
" 0.0787331834435463,\n",
" -0.09207120537757874,\n",
" -0.031238429248332977,\n",
" -0.06564447283744812,\n",
" -0.09600699692964554,\n",
" -0.029714435338974,\n",
" -0.019409839063882828,\n",
" 0.0018314741319045424,\n",
" 0.018882259726524353,\n",
" 0.03654668480157852,\n",
" -0.005077410489320755,\n",
" -0.017290854826569557,\n",
" -4.3281463149469346e-05,\n",
" 0.03840392455458641,\n",
" 0.059257131069898605,\n",
" -0.001048099366016686,\n",
" -0.049858007580041885,\n",
" -0.00924675539135933,\n",
" -0.0015360809629783034,\n",
" -0.07020754367113113,\n",
" -0.019497781991958618,\n",
" -0.04568319022655487,\n",
" -0.08878160268068314,\n",
" -0.006397779565304518,\n",
" 0.08201072365045547,\n",
" -0.014075429178774357,\n",
" 0.05403408780694008,\n",
" -0.03884543105959892],\n",
" 'id': 'context:c2',\n",
" 'text': 'Your mom goes to college.'}"
]
},
"execution_count": 60,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sentence2 = \"Your mom goes to college.\"\n",
"embedding2 = model.encode(sentence2)\n",
"await db_admin.create(\n",
" \"context:c2\",\n",
" {\n",
" \"text\": sentence2,\n",
" \"embedding\": embedding2.tolist()\n",
" },\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'embedding': [-0.0687154084444046,\n",
" 0.06865836679935455,\n",
" 0.016348257660865784,\n",
" -0.006919116247445345,\n",
" 0.019324511289596558,\n",
" -0.032366104423999786,\n",
" 0.023804228752851486,\n",
" 0.013782317750155926,\n",
" -0.02809331566095352,\n",
" 0.06903014332056046,\n",
" -0.030473899096250534,\n",
" 0.10766035318374634,\n",
" 0.029629727825522423,\n",
" 0.08201240003108978,\n",
" 0.04546995088458061,\n",
" 0.02299082837998867,\n",
" -0.034942761063575745,\n",
" 0.03252037987112999,\n",
" 0.061493515968322754,\n",
" 0.030624674633145332,\n",
" 0.01036603283137083,\n",
" 0.009189838543534279,\n",
" 0.061126235872507095,\n",
" 0.09104369580745697,\n",
" -0.011716318316757679,\n",
" -0.009624820202589035,\n",
" 0.0052475337870419025,\n",
" 0.010423766449093819,\n",
" 0.017941439524292946,\n",
" 0.010105829685926437,\n",
" -0.06598049402236938,\n",
" 0.024297859519720078,\n",
" -0.03220135346055031,\n",
" -0.010555120185017586,\n",
" -0.06559883058071136,\n",
" 0.12711377441883087,\n",
" 0.07121366262435913,\n",
" 0.025622466579079628,\n",
" -0.07305952906608582,\n",
" 0.07325558364391327,\n",
" 0.008329766802489758,\n",
" 0.08294793963432312,\n",
" 0.011945115402340889,\n",
" -0.04023180156946182,\n",
" 0.018142065033316612,\n",
" -0.0013644769787788391,\n",
" 0.03700609877705574,\n",
" -0.008662380278110504,\n",
" 0.050913210958242416,\n",
" 0.036694567650556564,\n",
" -0.01287137158215046,\n",
" 0.004991813097149134,\n",
" -0.05095415562391281,\n",
" -0.04020144045352936,\n",
" -0.06379079073667526,\n",
" 0.02575657144188881,\n",
" -0.07298092544078827,\n",
" -0.006723583210259676,\n",
" 0.007411011960357428,\n",
" 0.015276185236871243,\n",
" 0.016967719420790672,\n",
" 0.036139726638793945,\n",
" -0.03669941797852516,\n",
" 0.03340531513094902,\n",
" 0.040493760257959366,\n",
" -0.010599635541439056,\n",
" -0.024842893704771996,\n",
" -0.05029125511646271,\n",
" -0.07426882535219193,\n",
" -0.002974230097606778,\n",
" -0.013439360074698925,\n",
" 0.10401709377765656,\n",
" -0.012612873688340187,\n",
" 0.006886684335768223,\n",
" -0.07669049501419067,\n",
" -0.08723709732294083,\n",
" -0.021543748676776886,\n",
" -0.020755071192979813,\n",
" -0.07970812171697617,\n",
" 0.006079513113945723,\n",
" 0.013086327351629734,\n",
" 0.01670193485915661,\n",
" 0.022273704409599304,\n",
" 0.02038656175136566,\n",
" 0.013857427053153515,\n",
" -0.06723394244909286,\n",
" 0.021511264145374298,\n",
" -0.13918545842170715,\n",
" 0.06837917119264603,\n",
" -0.034252893179655075,\n",
" 0.01737734116613865,\n",
" -0.023427464067935944,\n",
" -0.07426928728818893,\n",
" 0.0276910699903965,\n",
" -0.07040953636169434,\n",
" 0.05135321617126465,\n",
" -0.062135960906744,\n",
" 0.045214325189590454,\n",
" -0.026806136593222618,\n",
" 0.04344084858894348,\n",
" -0.009641071781516075,\n",
" -0.10506292432546616,\n",
" -0.008510452695190907,\n",
" -0.01573110744357109,\n",
" 0.06828135251998901,\n",
" -0.04518461972475052,\n",
" 0.04597410559654236,\n",
" 0.011651627719402313,\n",
" -0.039808329194784164,\n",
" 0.046193480491638184,\n",
" -0.0027189140673726797,\n",
" 0.05873965099453926,\n",
" 0.04995322600007057,\n",
" 0.006655265111476183,\n",
" 0.022230809554457664,\n",
" 0.10550045967102051,\n",
" -0.04041643440723419,\n",
" 0.019811656326055527,\n",
" -0.016141299158334732,\n",
" 0.02290160022675991,\n",
" 0.002494193846359849,\n",
" -0.0070219747722148895,\n",
" 0.12203499674797058,\n",
" 0.08851244300603867,\n",
" -0.00025921923224814236,\n",
" -0.07700075954198837,\n",
" 0.047823961824178696,\n",
" -4.221446332932538e-33,\n",
" -0.0017489726888015866,\n",
" 0.0036345613189041615,\n",
" 0.039814624935388565,\n",
" -0.01966087892651558,\n",
" 0.0594208724796772,\n",
" 0.02883605845272541,\n",
" -0.008111943490803242,\n",
" -0.008608282543718815,\n",
" -0.03686654195189476,\n",
" 0.01845758967101574,\n",
" -0.050614938139915466,\n",
" 0.01902567408978939,\n",
" -0.0066321836784482,\n",
" 0.048639606684446335,\n",
" 0.050318557769060135,\n",
" -0.052386574447155,\n",
" 0.013561041094362736,\n",
" -0.055728521198034286,\n",
" -0.09659873694181442,\n",
" -0.025734523311257362,\n",
" 0.049613505601882935,\n",
" -0.05413227528333664,\n",
" 0.026071865111589432,\n",
" 0.045756593346595764,\n",
" -0.03761262074112892,\n",
" -0.04492492601275444,\n",
" 0.0796046331524849,\n",
" 0.05741503834724426,\n",
" -0.05976182222366333,\n",
" 0.020855369046330452,\n",
" -0.0026846432592719793,\n",
" -0.011131240986287594,\n",
" 0.05305095389485359,\n",
" -0.03272866830229759,\n",
" 0.07691444456577301,\n",
" 0.05432671308517456,\n",
" -0.01842503808438778,\n",
" -6.163682701298967e-05,\n",
" 0.015808969736099243,\n",
" 0.03490148112177849,\n",
" -0.03791898116469383,\n",
" -0.009704560972750187,\n",
" 0.004582966212183237,\n",
" -0.005821888335049152,\n",
" 0.03637568652629852,\n",
" 0.09196297824382782,\n",
" 0.0805266797542572,\n",
" -0.017792247235774994,\n",
" -0.09427381306886673,\n",
" -0.0011563912266865373,\n",
" 0.0019170528976246715,\n",
" 0.09193679690361023,\n",
" 0.08806730061769485,\n",
" -0.03355782851576805,\n",
" -0.028198733925819397,\n",
" 0.03199760988354683,\n",
" 0.04997614398598671,\n",
" 0.029822982847690582,\n",
" -0.03777820244431496,\n",
" 0.029570024460554123,\n",
" -0.0900682583451271,\n",
" -0.0049492367543280125,\n",
" 0.04901033639907837,\n",
" -0.0589192658662796,\n",
" -0.05556419864296913,\n",
" -0.02916303463280201,\n",
" 0.07641232758760452,\n",
" 0.015658710151910782,\n",
" -0.012892777100205421,\n",
" -0.01735857129096985,\n",
" -0.013214034028351307,\n",
" 0.03029852733016014,\n",
" -0.07411753386259079,\n",
" 0.014791221357882023,\n",
" -0.03188185766339302,\n",
" -0.012290903367102146,\n",
" -0.024997495114803314,\n",
" -0.003936849534511566,\n",
" 0.10337655246257782,\n",
" -0.05883116275072098,\n",
" 0.001194200711324811,\n",
" -0.06510988622903824,\n",
" 0.019772659987211227,\n",
" 0.04804249107837677,\n",
" -0.044728994369506836,\n",
" 0.002938071498647332,\n",
" 0.07824435830116272,\n",
" -0.06579078733921051,\n",
" -0.03906340152025223,\n",
" 0.004603822715580463,\n",
" -0.05555274337530136,\n",
" 0.07424549013376236,\n",
" 0.08982294797897339,\n",
" -0.055338356643915176,\n",
" -0.00506273889914155,\n",
" 1.7709097901626235e-33,\n",
" 0.09398631006479263,\n",
" -0.043292053043842316,\n",
" 0.058222051709890366,\n",
" 0.05100950226187706,\n",
" -0.1096189096570015,\n",
" 0.026085244491696358,\n",
" 0.09195025265216827,\n",
" -0.051089853048324585,\n",
" -0.012795780785381794,\n",
" 0.01968630775809288,\n",
" -0.07537044584751129,\n",
" -0.03313378617167473,\n",
" 0.016063695773482323,\n",
" 0.02218962088227272,\n",
" 0.0845540314912796,\n",
" -0.04410001263022423,\n",
" 0.0035675920080393553,\n",
" 0.0665012076497078,\n",
" -0.02021562121808529,\n",
" -0.015001465566456318,\n",
" -0.01612655445933342,\n",
" 0.060769643634557724,\n",
" -0.07201559096574783,\n",
" -0.06775373965501785,\n",
" 0.02890446037054062,\n",
" -0.00773652084171772,\n",
" -0.004273148253560066,\n",
" 0.10973724722862244,\n",
" -0.057213399559259415,\n",
" -0.013623245060443878,\n",
" 0.025938019156455994,\n",
" 0.07515764981508255,\n",
" -0.06368587911128998,\n",
" -0.08221041411161423,\n",
" -0.0742662101984024,\n",
" 0.1185598224401474,\n",
" -0.021025603637099266,\n",
" -0.018929816782474518,\n",
" -0.021411115303635597,\n",
" -0.05126814916729927,\n",
" 0.0773753970861435,\n",
" -0.04101090133190155,\n",
" 0.05669870227575302,\n",
" -0.034633614122867584,\n",
" 0.03615179657936096,\n",
" 0.0031710315961390734,\n",
" 0.0511050708591938,\n",
" 0.0925334021449089,\n",
" -0.07945691794157028,\n",
" -0.021517671644687653,\n",
" -0.06793264299631119,\n",
" 0.008405094966292381,\n",
" -0.07717278599739075,\n",
" 0.0702221468091011,\n",
" -0.002085525542497635,\n",
" -0.03925623744726181,\n",
" -0.0748676210641861,\n",
" -0.018004106357693672,\n",
" -0.11605590581893921,\n",
" -0.11458313465118408,\n",
" -0.036703117191791534,\n",
" -0.013844430446624756,\n",
" -0.030344132333993912,\n",
" -0.0346972681581974,\n",
" 0.014279312454164028,\n",
" -0.012766172178089619,\n",
" 0.027324968948960304,\n",
" -0.0673266127705574,\n",
" -0.019832748919725418,\n",
" 0.047441355884075165,\n",
" -0.049783021211624146,\n",
" -0.09501167386770248,\n",
" -0.02256142720580101,\n",
" -0.06115366891026497,\n",
" -0.03141552209854126,\n",
" 0.017898758873343468,\n",
" 0.08671838790178299,\n",
" 0.014894154854118824,\n",
" -0.011347729712724686,\n",
" -0.12334159016609192,\n",
" 0.042146872729063034,\n",
" -0.0910186693072319,\n",
" -0.06011584773659706,\n",
" 0.015858899801969528,\n",
" -0.051511168479919434,\n",
" 0.02914523519575596,\n",
" -0.02419407293200493,\n",
" -0.11408843100070953,\n",
" -0.015715107321739197,\n",
" 0.02547471970319748,\n",
" -0.051369115710258484,\n",
" -0.05151783674955368,\n",
" -0.03669390454888344,\n",
" -0.05757702514529228,\n",
" -0.009298241697251797,\n",
" -2.0801754985200205e-08,\n",
" 0.021466653794050217,\n",
" 0.05316482111811638,\n",
" -0.034725483506917953,\n",
" 0.011854717507958412,\n",
" 0.024059481918811798,\n",
" 0.028114397078752518,\n",
" 0.012774291448295116,\n",
" 0.013847132213413715,\n",
" -0.043149787932634354,\n",
" 0.014681462198495865,\n",
" 0.006435879040509462,\n",
" 0.022332804277539253,\n",
" -0.00871281884610653,\n",
" 0.10122161358594894,\n",
" -0.0396529957652092,\n",
" 0.04677952080965042,\n",
" 0.02244127169251442,\n",
" -0.008004304952919483,\n",
" -0.05492502450942993,\n",
" 0.09713191539049149,\n",
" -0.05569043010473251,\n",
" 0.02844090946018696,\n",
" 0.002262962982058525,\n",
" 0.06054037809371948,\n",
" -0.02726992964744568,\n",
" -0.04484821483492851,\n",
" 0.013411364518105984,\n",
" -0.01435998734086752,\n",
" 0.09531723707914352,\n",
" -0.0355030782520771,\n",
" -0.022457584738731384,\n",
" -0.021437231451272964,\n",
" -0.07001194357872009,\n",
" 0.09753423929214478,\n",
" 0.09170278161764145,\n",
" 0.017300540581345558,\n",
" -0.05704525485634804,\n",
" 0.04061945900321007,\n",
" 0.05330178886651993,\n",
" -0.017108526080846786,\n",
" 0.010634573176503181,\n",
" 0.018714386969804764,\n",
" 0.10105448216199875,\n",
" 0.066991426050663,\n",
" -0.07467610388994217,\n",
" -0.031104685738682747,\n",
" -0.024001287296414375,\n",
" 0.043324947357177734,\n",
" -0.04428170248866081,\n",
" 0.03114204667508602,\n",
" -0.0384378544986248,\n",
" -0.00497459014877677,\n",
" -0.04696325585246086,\n",
" 0.06634757667779922,\n",
" 0.04762718826532364,\n",
" 0.007888355292379856,\n",
" -0.040471870452165604,\n",
" -0.05458998680114746,\n",
" -0.11732412129640579,\n",
" 0.09005974978208542,\n",
" 0.05564115196466446,\n",
" -0.09758589416742325,\n",
" -0.03621628135442734,\n",
" -0.05441541224718094],\n",
" 'id': 'context:c3',\n",
" 'text': 'I think that hiking up the mountain is a more righteous way to ski.'}"
]
},
"execution_count": 61,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sentence3 = \"I think that hiking up the mountain is a more righteous way to ski.\"\n",
"embedding3 = model.encode(sentence3)\n",
"await db_admin.create(\n",
" \"context:c3\",\n",
" {\n",
" \"text\": sentence3,\n",
" \"embedding\": embedding3.tolist()\n",
" },\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'embedding': [-0.05596602335572243,\n",
" 0.07386287301778793,\n",
" 0.04279350861907005,\n",
" -0.022733265534043312,\n",
" -0.0954650342464447,\n",
" -0.03712044656276703,\n",
" 0.04941699653863907,\n",
" -0.01623666100203991,\n",
" -0.040018025785684586,\n",
" 0.09906632453203201,\n",
" -0.03808848559856415,\n",
" -0.00436401879414916,\n",
" -0.012545345351099968,\n",
" 0.05921676382422447,\n",
" 0.03773675858974457,\n",
" 0.014650903642177582,\n",
" -0.035299643874168396,\n",
" 0.019307894632220268,\n",
" 0.046252936124801636,\n",
" 0.05302712321281433,\n",
" 0.0002854951308108866,\n",
" 0.007969099096953869,\n",
" -0.02284696139395237,\n",
" 0.0846327468752861,\n",
" -0.016025599092245102,\n",
" 0.009580861777067184,\n",
" -0.07464149594306946,\n",
" 0.0858684703707695,\n",
" 0.02750663086771965,\n",
" 0.062189504504203796,\n",
" -0.08975996822118759,\n",
" -0.018551306799054146,\n",
" 0.01471706572920084,\n",
" 0.005584691185504198,\n",
" -0.09671036899089813,\n",
" 0.10923073440790176,\n",
" 0.02108731120824814,\n",
" 0.034489743411540985,\n",
" -0.0662224218249321,\n",
" 0.06845798343420029,\n",
" 0.008028391748666763,\n",
" 0.05983380228281021,\n",
" -0.0012795450165867805,\n",
" -0.022092944011092186,\n",
" 0.011216017417609692,\n",
" -0.0030872768256813288,\n",
" 0.0050307586789131165,\n",
" -0.01650886796414852,\n",
" 0.019840041175484657,\n",
" 0.002704001497477293,\n",
" 0.034383125603199005,\n",
" -0.026160147041082382,\n",
" 0.07367533445358276,\n",
" -0.02139311470091343,\n",
" -0.0028375054243952036,\n",
" 0.018009081482887268,\n",
" -0.06554300338029861,\n",
" -0.014562358148396015,\n",
" 0.027876142412424088,\n",
" 0.06351643055677414,\n",
" 0.00685011176392436,\n",
" 0.029622046276926994,\n",
" -0.06966520845890045,\n",
" 0.07041870802640915,\n",
" 0.03481258451938629,\n",
" 0.0440143458545208,\n",
" -0.05823776125907898,\n",
" 0.011153236031532288,\n",
" -0.05452529713511467,\n",
" 0.024562623351812363,\n",
" 0.04811146482825279,\n",
" 0.041539374738931656,\n",
" -0.013963952660560608,\n",
" 0.010998534969985485,\n",
" -0.05100741982460022,\n",
" -0.055648889392614365,\n",
" -0.04593457654118538,\n",
" -0.04746195301413536,\n",
" -0.060535456985235214,\n",
" 0.06669265031814575,\n",
" 0.003249081317335367,\n",
" -0.05817539617419243,\n",
" 0.04765733703970909,\n",
" -0.007356769405305386,\n",
" 0.04129995033144951,\n",
" -0.06550972908735275,\n",
" 0.04206773638725281,\n",
" -0.05529213324189186,\n",
" -0.015038887038826942,\n",
" -0.02453753910958767,\n",
" -0.04540659114718437,\n",
" -0.025299208238720894,\n",
" 0.04934007674455643,\n",
" 0.012133806943893433,\n",
" -0.06988274306058884,\n",
" 0.013761557638645172,\n",
" -0.037417225539684296,\n",
" 0.03639872372150421,\n",
" -0.05982870236039162,\n",
" 0.07317864149808884,\n",
" -0.05628044158220291,\n",
" -0.05077245086431503,\n",
" 0.05163436383008957,\n",
" 0.030483078211545944,\n",
" 0.06259267777204514,\n",
" -0.011347843334078789,\n",
" -0.00826731976121664,\n",
" 0.049256086349487305,\n",
" 0.018508361652493477,\n",
" -0.0012272166786715388,\n",
" -0.014975455589592457,\n",
" 0.02660791389644146,\n",
" 0.0324036069214344,\n",
" 0.008808379992842674,\n",
" 0.02918885461986065,\n",
" 0.03646169602870941,\n",
" -0.04572129622101784,\n",
" -0.01517124380916357,\n",
" -0.05455697700381279,\n",
" 0.020559124648571014,\n",
" -0.03861043602228165,\n",
" 0.04850884526968002,\n",
" 0.07136193662881851,\n",
" 0.08793986588716507,\n",
" 0.047195788472890854,\n",
" 0.002534842351451516,\n",
" 0.03456266596913338,\n",
" -4.983626951772124e-33,\n",
" 0.01760045625269413,\n",
" -0.036060452461242676,\n",
" 0.07283486425876617,\n",
" -0.007709852885454893,\n",
" 0.0010028509423136711,\n",
" 0.043273430317640305,\n",
" -7.455211289197905e-06,\n",
" 0.02321784570813179,\n",
" -0.023939481005072594,\n",
" -0.006107775494456291,\n",
" -0.020698903128504753,\n",
" 0.061814215034246445,\n",
" -0.032069478183984756,\n",
" 0.08908828347921371,\n",
" 0.023053277283906937,\n",
" 0.001667237957008183,\n",
" 0.036718156188726425,\n",
" -0.09156499803066254,\n",
" -0.12763139605522156,\n",
" -0.041080716997385025,\n",
" 0.03231428191065788,\n",
" -0.03973006457090378,\n",
" -0.00029700371669605374,\n",
" 0.06435339897871017,\n",
" -0.09020072966814041,\n",
" -0.028147637844085693,\n",
" 0.02112971432507038,\n",
" 0.04535461217164993,\n",
" 0.053997233510017395,\n",
" 0.037572626024484634,\n",
" -0.06720821559429169,\n",
" -0.01727215014398098,\n",
" 0.008911318145692348,\n",
" -0.03625958785414696,\n",
" 0.08161866664886475,\n",
" 0.042251553386449814,\n",
" -0.036881282925605774,\n",
" 0.052334029227495193,\n",
" -0.010846170596778393,\n",
" 0.04529683664441109,\n",
" 0.037459131330251694,\n",
" -0.09162483364343643,\n",
" -0.042122744023799896,\n",
" -0.02979297935962677,\n",
" 0.004414124879986048,\n",
" 0.03757917135953903,\n",
" 0.014547600410878658,\n",
" -0.02015737071633339,\n",
" -0.06480392068624496,\n",
" 0.02163083106279373,\n",
" -0.036539990454912186,\n",
" 0.11904211342334747,\n",
" 0.0018275503534823656,\n",
" 0.016780607402324677,\n",
" -0.0030797936487942934,\n",
" 0.06597290933132172,\n",
" 0.06893665343523026,\n",
" 0.08799763023853302,\n",
" -0.046349480748176575,\n",
" 0.045711517333984375,\n",
" -0.08293940126895905,\n",
" 0.037615180015563965,\n",
" 0.0010952947195619345,\n",
" -0.06825560331344604,\n",
" -0.07775553315877914,\n",
" -0.03399648889899254,\n",
" 0.08625143766403198,\n",
" 0.04758088290691376,\n",
" 0.006755071692168713,\n",
" 0.022202018648386,\n",
" 0.061967551708221436,\n",
" 0.003392353653907776,\n",
" -0.10023732483386993,\n",
" 0.04938613623380661,\n",
" -0.0015141956973820925,\n",
" -0.0060985819436609745,\n",
" -0.0005139053682796657,\n",
" 0.07282580435276031,\n",
" 0.04758187383413315,\n",
" 0.00622689351439476,\n",
" 0.03172587975859642,\n",
" 0.0172547809779644,\n",
" 0.014635485596954823,\n",
" -0.0028967855032533407,\n",
" -0.07944132387638092,\n",
" -0.01082572154700756,\n",
" 0.09343291074037552,\n",
" -0.14809204638004303,\n",
" -0.0027032180223613977,\n",
" 0.04132380709052086,\n",
" -0.05491742864251137,\n",
" 0.05335708335042,\n",
" 0.050447843968868256,\n",
" -0.03232572227716446,\n",
" -0.09848801791667938,\n",
" 1.0451656391076896e-33,\n",
" 0.040153540670871735,\n",
" -0.0178395826369524,\n",
" 0.014650126919150352,\n",
" -0.0004938142374157906,\n",
" -0.03677701577544212,\n",
" 0.04937296733260155,\n",
" 0.0656660720705986,\n",
" -0.01703779771924019,\n",
" -0.09945081919431686,\n",
" 0.041491251438856125,\n",
" 0.03242296725511551,\n",
" 0.024213561788201332,\n",
" -0.015181886032223701,\n",
" 0.004968144465237856,\n",
" 0.04465611279010773,\n",
" -0.07631227374076843,\n",
" 0.037623461335897446,\n",
" 0.1146031990647316,\n",
" -0.04284283146262169,\n",
" -0.068748340010643,\n",
" 0.03368746489286423,\n",
" -0.008452599868178368,\n",
" -0.01813395321369171,\n",
" -0.04555131867527962,\n",
" 0.021048055961728096,\n",
" -0.01885043829679489,\n",
" 0.00460944464430213,\n",
" 0.08933654427528381,\n",
" -0.06380985677242279,\n",
" 0.007130839396268129,\n",
" 0.001717276405543089,\n",
" 0.12334073334932327,\n",
" -0.03987261652946472,\n",
" -0.040734801441431046,\n",
" -0.03246929869055748,\n",
" 0.053075216710567474,\n",
" -0.06948579102754593,\n",
" 0.027057889848947525,\n",
" -0.026151517406105995,\n",
" -0.04327038675546646,\n",
" 0.030162159353494644,\n",
" -0.06212417781352997,\n",
" 0.021435609087347984,\n",
" 0.045270100235939026,\n",
" 0.0880265161395073,\n",
" -0.05477377399802208,\n",
" 0.016098354011774063,\n",
" 0.03395453095436096,\n",
" -0.04072218015789986,\n",
" -0.05807439610362053,\n",
" -0.1576034277677536,\n",
" 0.02232772670686245,\n",
" -0.03819416090846062,\n",
" 0.056779321283102036,\n",
" 0.016940748319029808,\n",
" -0.10419990122318268,\n",
" -0.056083451956510544,\n",
" -0.05134693905711174,\n",
" -0.05519017577171326,\n",
" -0.13779602944850922,\n",
" -0.03168844059109688,\n",
" -0.06358475238084793,\n",
" -0.03810132294893265,\n",
" -0.0021662930957973003,\n",
" 0.06345359981060028,\n",
" -0.059095364063978195,\n",
" 0.004623597487807274,\n",
" -0.11771143227815628,\n",
" 7.22745171515271e-05,\n",
" 0.029689785093069077,\n",
" 0.0071358466520905495,\n",
" -0.0807156190276146,\n",
" -0.023902561515569687,\n",
" -0.1147761270403862,\n",
" -0.06388573348522186,\n",
" 0.03997672721743584,\n",
" 0.007503950502723455,\n",
" 0.006648250389844179,\n",
" -0.021921982988715172,\n",
" -0.1465362310409546,\n",
" 0.005766145419329405,\n",
" -0.03320744261145592,\n",
" 0.0229426808655262,\n",
" 0.04882163926959038,\n",
" -0.02622133679687977,\n",
" -0.02062637358903885,\n",
" 0.029238732531666756,\n",
" -0.07999470084905624,\n",
" -0.05383756384253502,\n",
" 0.0680331289768219,\n",
" -0.01836763136088848,\n",
" -0.03196704760193825,\n",
" -0.034268733114004135,\n",
" -0.0341019444167614,\n",
" -0.009360390715301037,\n",
" -2.039375068818572e-08,\n",
" 0.08386091887950897,\n",
" 0.06279178708791733,\n",
" -0.06448257714509964,\n",
" 0.01530382502824068,\n",
" -0.03581731393933296,\n",
" 0.014681709930300713,\n",
" -0.03241019695997238,\n",
" -0.07422717660665512,\n",
" -0.05700311437249184,\n",
" 0.08751627057790756,\n",
" -0.009269648231565952,\n",
" 0.052496425807476044,\n",
" 0.02192162163555622,\n",
" 0.08133849501609802,\n",
" -0.011604633182287216,\n",
" 0.047483719885349274,\n",
" 0.024862701073288918,\n",
" -0.012936549261212349,\n",
" -0.07383516430854797,\n",
" 0.007608125451952219,\n",
" -0.08577603846788406,\n",
" 0.020273739472031593,\n",
" 0.04805968329310417,\n",
" 0.05604197084903717,\n",
" -0.04409477114677429,\n",
" -0.06170239672064781,\n",
" 0.004592546261847019,\n",
" -0.0723891481757164,\n",
" 0.07684584707021713,\n",
" 0.033075787127017975,\n",
" -0.04789271578192711,\n",
" 0.004941684193909168,\n",
" -0.06713086366653442,\n",
" 0.009254946373403072,\n",
" 0.10297674685716629,\n",
" -0.0039052071515470743,\n",
" -0.06968984752893448,\n",
" 0.054262056946754456,\n",
" -0.0023400478530675173,\n",
" -0.015439704991877079,\n",
" -0.033221516758203506,\n",
" 0.00519308028742671,\n",
" 0.05281971022486687,\n",
" 0.06752758473157883,\n",
" 0.020607979968190193,\n",
" 0.0011869879672303796,\n",
" 0.03952224925160408,\n",
" 0.07312732189893723,\n",
" 0.0026176301762461662,\n",
" 0.005558440461754799,\n",
" 0.001969970064237714,\n",
" 0.05012481287121773,\n",
" -0.012542401440441608,\n",
" 0.07477005571126938,\n",
" -0.09144230931997299,\n",
" 0.006161908153444529,\n",
" 0.0015483169117942452,\n",
" -0.030604850500822067,\n",
" -0.09309915453195572,\n",
" -0.027593277394771576,\n",
" 0.0344424732029438,\n",
" -0.12738367915153503,\n",
" 0.009777014143764973,\n",
" -0.06558489054441452],\n",
" 'id': 'context:c4',\n",
" 'text': 'No! Mono-skiers are the most righteous dudes on the mountain.'}"
]
},
"execution_count": 62,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sentence4 = \"No! Mono-skiers are the most righteous dudes on the mountain.\"\n",
"embedding4 = model.encode(sentence4)\n",
"await db_admin.create(\n",
" \"context:c4\",\n",
" {\n",
" \"text\": sentence4,\n",
" \"embedding\": embedding4.tolist()\n",
" },\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'embedding': [-0.02463686466217041,\n",
" 0.028182253241539,\n",
" 0.09579474478960037,\n",
" -0.005464345682412386,\n",
" -0.062102168798446655,\n",
" -0.017640186473727226,\n",
" 0.022812727838754654,\n",
" 0.0338481105864048,\n",
" -0.030835727229714394,\n",
" 0.09391246736049652,\n",
" -0.009724598377943039,\n",
" 0.051131173968315125,\n",
" -0.03629294037818909,\n",
" 0.10473974794149399,\n",
" 0.024361897259950638,\n",
" 0.009485050104558468,\n",
" -0.016403090208768845,\n",
" 0.003000987460836768,\n",
" 0.021158289164304733,\n",
" -0.040163297206163406,\n",
" 0.03374470770359039,\n",
" -0.010752893052995205,\n",
" 0.028699664399027824,\n",
" 0.0381961353123188,\n",
" -0.02114003710448742,\n",
" 0.14680589735507965,\n",
" -0.060435306280851364,\n",
" -0.06739287078380585,\n",
" -0.01624830812215805,\n",
" 0.03901434317231178,\n",
" -0.029515907168388367,\n",
" -0.018110640347003937,\n",
" 0.04003876820206642,\n",
" 0.005946445744484663,\n",
" -0.010949806310236454,\n",
" 0.07680096477270126,\n",
" 0.11008919775485992,\n",
" 0.03775189444422722,\n",
" -0.07810690999031067,\n",
" 0.10983401536941528,\n",
" -0.031364936381578445,\n",
" 0.004235493019223213,\n",
" -0.028324225917458534,\n",
" -0.06226268410682678,\n",
" 0.0025470012333244085,\n",
" 0.006522172596305609,\n",
" 0.03679704666137695,\n",
" -0.07491209357976913,\n",
" 0.10541817545890808,\n",
" 0.047868549823760986,\n",
" 0.0015854377998039126,\n",
" -0.02843415178358555,\n",
" 0.028070278465747833,\n",
" -0.05969182029366493,\n",
" -0.05672474950551987,\n",
" 0.032753895968198776,\n",
" -0.051674362272024155,\n",
" -0.019214607775211334,\n",
" 0.030740952119231224,\n",
" 0.007900498807430267,\n",
" -0.06442974507808685,\n",
" 0.017291303724050522,\n",
" -0.080989308655262,\n",
" 0.08107136934995651,\n",
" 0.011638429015874863,\n",
" 0.006425704341381788,\n",
" -0.04821021109819412,\n",
" 0.049895916134119034,\n",
" -0.05931665375828743,\n",
" 0.029694292694330215,\n",
" -0.0186614990234375,\n",
" 0.07036808878183365,\n",
" 0.011472444050014019,\n",
" 0.025589076802134514,\n",
" 0.015509913675487041,\n",
" -0.03836609423160553,\n",
" 0.016548773273825645,\n",
" -0.025903593748807907,\n",
" 0.011764461174607277,\n",
" -0.0048561543226242065,\n",
" -0.0004227850295137614,\n",
" 0.016827646642923355,\n",
" 0.03314788639545441,\n",
" -0.05329816788434982,\n",
" 0.06069072335958481,\n",
" -0.029771870002150536,\n",
" 0.05067126825451851,\n",
" -0.08220192044973373,\n",
" -0.011064286343753338,\n",
" -0.03501303493976593,\n",
" -0.06878172606229782,\n",
" -0.046776145696640015,\n",
" 0.008028091862797737,\n",
" 0.07775848358869553,\n",
" 0.02393444813787937,\n",
" 0.07013604789972305,\n",
" -0.09791047871112823,\n",
" 0.020754428580403328,\n",
" -0.03245154395699501,\n",
" 0.024956319481134415,\n",
" -0.05549957603216171,\n",
" -0.09110487997531891,\n",
" 0.10063429176807404,\n",
" 0.07915689051151276,\n",
" -0.02137383632361889,\n",
" -0.03289018198847771,\n",
" 0.05444217100739479,\n",
" 0.02681092731654644,\n",
" 0.04072754830121994,\n",
" 0.019447343423962593,\n",
" 0.04372057318687439,\n",
" -0.018164727836847305,\n",
" 0.06956306099891663,\n",
" 0.013495558872818947,\n",
" 0.008078654296696186,\n",
" 0.03319481760263443,\n",
" -0.0005934310611337423,\n",
" -0.03594335541129112,\n",
" -0.006755650509148836,\n",
" 0.03436018526554108,\n",
" -0.04686344414949417,\n",
" 0.0245258379727602,\n",
" 0.06846120208501816,\n",
" 0.030253268778324127,\n",
" -0.02251383103430271,\n",
" -0.04812419041991234,\n",
" -0.01664457470178604,\n",
" -3.8171324795733196e-33,\n",
" -0.007588277570903301,\n",
" 0.05138221010565758,\n",
" 0.031329307705163956,\n",
" 0.05399821326136589,\n",
" -0.01256084255874157,\n",
" 0.013952898792922497,\n",
" 0.04812038317322731,\n",
" -0.028485096991062164,\n",
" -0.025014270097017288,\n",
" 0.015016200952231884,\n",
" 0.01883334293961525,\n",
" 0.008932240307331085,\n",
" -0.013765784911811352,\n",
" 0.03024093247950077,\n",
" 0.1052679643034935,\n",
" 0.05417025089263916,\n",
" -0.006770483683794737,\n",
" -0.03121834620833397,\n",
" -0.10367680341005325,\n",
" 0.023003095760941505,\n",
" 0.026218529790639877,\n",
" -0.06223009526729584,\n",
" 0.0406026691198349,\n",
" 0.04284783825278282,\n",
" -0.0462525449693203,\n",
" 0.024694407358765602,\n",
" 0.01582987979054451,\n",
" -0.014871830120682716,\n",
" 0.07859152555465698,\n",
" 0.026292692869901657,\n",
" 0.015974929556250572,\n",
" -0.012229055166244507,\n",
" -0.059126850217580795,\n",
" 0.0042134663090109825,\n",
" 0.02385287545621395,\n",
" -0.0032368500251322985,\n",
" 0.08293293416500092,\n",
" 0.015648934990167618,\n",
" 0.024025291204452515,\n",
" -0.008926655165851116,\n",
" 0.07342018932104111,\n",
" -0.09751681238412857,\n",
" -0.023735469207167625,\n",
" -0.013644303195178509,\n",
" 0.05174091085791588,\n",
" 0.04872104153037071,\n",
" 0.11484694480895996,\n",
" 0.039394233375787735,\n",
" -0.042704492807388306,\n",
" 0.028562532737851143,\n",
" -0.0018117389408871531,\n",
" 0.08054039627313614,\n",
" -0.09172122925519943,\n",
" -0.07923828810453415,\n",
" -0.010661100037395954,\n",
" 0.11108172684907913,\n",
" 0.040652573108673096,\n",
" 0.04219972342252731,\n",
" -0.053292110562324524,\n",
" -0.0048186262138187885,\n",
" -0.06871524453163147,\n",
" 0.035823579877614975,\n",
" 0.03288339450955391,\n",
" -0.06248774752020836,\n",
" -0.02726219967007637,\n",
" 0.049945659935474396,\n",
" 0.11562519520521164,\n",
" 0.03271481767296791,\n",
" 0.02350849099457264,\n",
" -0.08647296577692032,\n",
" 0.0022157251369208097,\n",
" -0.008755323477089405,\n",
" -0.1607915610074997,\n",
" 0.06387921422719955,\n",
" 0.007375488523393869,\n",
" -0.010235289111733437,\n",
" 0.03893115371465683,\n",
" -0.05927089974284172,\n",
" 0.07099533081054688,\n",
" 0.023359378799796104,\n",
" 0.031120967119932175,\n",
" -0.0722934901714325,\n",
" 0.030430322512984276,\n",
" -0.024966824799776077,\n",
" -0.0289013609290123,\n",
" -0.007573828101158142,\n",
" 0.04025628790259361,\n",
" -0.08499288558959961,\n",
" 0.01893474906682968,\n",
" 0.017340661957859993,\n",
" -0.06029621139168739,\n",
" 0.013523648492991924,\n",
" -0.005158400163054466,\n",
" 0.015357645228505135,\n",
" -0.04052181914448738,\n",
" 9.001452683887287e-34,\n",
" 0.01607348769903183,\n",
" 0.01692156493663788,\n",
" -0.05483914166688919,\n",
" 0.024271244183182716,\n",
" -0.035067588090896606,\n",
" 0.025500398129224777,\n",
" 0.08113832771778107,\n",
" -0.06764600425958633,\n",
" 0.001849200576543808,\n",
" 0.024617210030555725,\n",
" -0.04276391863822937,\n",
" -0.05547014996409416,\n",
" -0.04222002997994423,\n",
" -0.022777436301112175,\n",
" -0.014361255802214146,\n",
" -0.0890764370560646,\n",
" 0.07312729954719543,\n",
" 0.10017488896846771,\n",
" 0.008886661380529404,\n",
" -0.07484032958745956,\n",
" 0.040684692561626434,\n",
" 0.07551933825016022,\n",
" -0.09107456356287003,\n",
" 0.03468463197350502,\n",
" 0.014434938319027424,\n",
" -0.030011964961886406,\n",
" -0.04159461334347725,\n",
" 0.034653209149837494,\n",
" -0.09830747544765472,\n",
" 0.13843666017055511,\n",
" 0.05301624909043312,\n",
" 0.031008392572402954,\n",
" 0.03273933380842209,\n",
" 0.013937512412667274,\n",
" -0.09569915384054184,\n",
" 0.050039030611515045,\n",
" -0.07368730753660202,\n",
" 0.0186835378408432,\n",
" -0.08440408110618591,\n",
" -0.04156169667840004,\n",
" 0.056915033608675,\n",
" -0.10966885834932327,\n",
" 0.030952507629990578,\n",
" -0.033134691417217255,\n",
" 0.004993196111172438,\n",
" -0.005146638955920935,\n",
" 0.010176321491599083,\n",
" 0.07580532133579254,\n",
" -0.04477223381400108,\n",
" 0.00624849135056138,\n",
" -0.04601955786347389,\n",
" 0.055592864751815796,\n",
" -0.0769272893667221,\n",
" -0.061889052391052246,\n",
" -0.02666882798075676,\n",
" -0.050630833953619,\n",
" 0.0032033156603574753,\n",
" -0.07608959078788757,\n",
" -0.04232141003012657,\n",
" -0.03781629726290703,\n",
" -0.0038585502188652754,\n",
" -0.09351792186498642,\n",
" -0.039199281483888626,\n",
" -0.008496134541928768,\n",
" 0.052110668271780014,\n",
" -0.05871070176362991,\n",
" -0.0651521161198616,\n",
" -0.11377449333667755,\n",
" 0.006645407062023878,\n",
" -0.0013172270264476538,\n",
" 0.06675471365451813,\n",
" 0.027988091111183167,\n",
" 0.010153677314519882,\n",
" -0.12420283257961273,\n",
" -0.08798667043447495,\n",
" 0.05244012922048569,\n",
" 0.046409059315919876,\n",
" 0.09296644479036331,\n",
" -0.037645384669303894,\n",
" -0.03905659541487694,\n",
" 0.029280927032232285,\n",
" -0.06327592581510544,\n",
" 0.020357850939035416,\n",
" 0.03943151608109474,\n",
" -0.0803457573056221,\n",
" -0.010407651774585247,\n",
" -0.01610724627971649,\n",
" -0.0895284041762352,\n",
" -0.009552208706736565,\n",
" 0.023866603150963783,\n",
" -0.02819792367517948,\n",
" 0.024008845910429955,\n",
" -0.03829221427440643,\n",
" -0.00833863765001297,\n",
" -0.042979706078767776,\n",
" -1.8143659019642655e-08,\n",
" 0.06180747225880623,\n",
" 0.04296427592635155,\n",
" 0.01555679552257061,\n",
" 0.033939361572265625,\n",
" 0.008512898348271847,\n",
" 0.04915850609540939,\n",
" -0.05364289507269859,\n",
" -0.043087396770715714,\n",
" -0.028317555785179138,\n",
" 0.03207158297300339,\n",
" 0.016246818006038666,\n",
" 0.008984635584056377,\n",
" 0.029764894396066666,\n",
" 0.07132704555988312,\n",
" 0.03125410154461861,\n",
" 0.018413914367556572,\n",
" 0.07425844669342041,\n",
" 0.07236436009407043,\n",
" -0.054537829011678696,\n",
" 0.057459406554698944,\n",
" -0.047203656286001205,\n",
" -0.039395734667778015,\n",
" 0.020687637850642204,\n",
" 0.07882697880268097,\n",
" -0.047376155853271484,\n",
" -0.14864464104175568,\n",
" 0.007079970091581345,\n",
" -0.008090229704976082,\n",
" -0.006797377485781908,\n",
" -0.01219568494707346,\n",
" -0.052005212754011154,\n",
" -0.019060686230659485,\n",
" 0.00016008131206035614,\n",
" 0.02297992818057537,\n",
" 0.028522426262497902,\n",
" -0.03406395763158798,\n",
" -0.03252208232879639,\n",
" 0.018427440896630287,\n",
" -0.023922856897115707,\n",
" -0.019607866182923317,\n",
" -0.07580647617578506,\n",
" 0.08107504993677139,\n",
" 0.1287258267402649,\n",
" 0.04438914731144905,\n",
" -0.04211144149303436,\n",
" 0.03776843100786209,\n",
" -0.060205839574337006,\n",
" 0.00020622750162146986,\n",
" 0.0044311219826340675,\n",
" 0.05093929171562195,\n",
" 0.00016959468484856188,\n",
" -0.04055192321538925,\n",
" -0.03393483906984329,\n",
" 0.052216097712516785,\n",
" 0.00642355065792799,\n",
" 0.03223293647170067,\n",
" -0.033218830823898315,\n",
" -0.05185206979513168,\n",
" -0.13407185673713684,\n",
" 0.02521008998155594,\n",
" 0.02214452438056469,\n",
" 0.022121036425232887,\n",
" -0.028471412137150764,\n",
" -0.0014543125871568918],\n",
" 'id': 'context:c5',\n",
" 'text': 'I think kids need to learn to ski and mono-ski in school.'}"
]
},
"execution_count": 63,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sentence5 = \"I think kids need to learn to ski and mono-ski in school.\"\n",
"embedding5 = model.encode(sentence5)\n",
"await db_admin.create(\n",
" \"context:c5\",\n",
" {\n",
" \"text\": sentence5,\n",
" \"embedding\": embedding5.tolist()\n",
" },\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': [{'vector::similarity::cosine': 0.20213616760673866},\n",
" {'vector::similarity::cosine': 0.20213616760673866}],\n",
" 'status': 'OK',\n",
" 'time': '1.241229ms'}]"
]
},
"execution_count": 64,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Basic similarity query - should have some simlarity between c1 and c2\n",
"await db_admin.query('''\n",
" SELECT vector::similarity::cosine(context:c1.embedding, context:c2.embedding) FROM context:c1, context:c2\n",
"''')"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': [{'vector::similarity::cosine': 0.06727307877904953},\n",
" {'vector::similarity::cosine': 0.06727307877904953}],\n",
" 'status': 'OK',\n",
" 'time': '1.510738ms'}]"
]
},
"execution_count": 65,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Basic similarity query - should not be much simlarity between c1 and c3\n",
"await db_admin.query('''\n",
" SELECT vector::similarity::cosine(context:c1.embedding, context:c3.embedding) FROM context:c1, context:c3\n",
"''')"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'result': None, 'status': 'OK', 'time': '114.622µs'},\n",
" {'result': [{'similarity': 0.4980708290612037,\n",
" 'text': 'I think kids need to learn to ski and mono-ski in school.'},\n",
" {'similarity': 0.49715219568731955,\n",
" 'text': 'I think that hiking up the mountain is a more righteous way to ski.'},\n",
" {'similarity': 0.4077806051040523,\n",
" 'text': 'No! Mono-skiers are the most righteous dudes on the mountain.'},\n",
" {'similarity': 0.12433440305622853, 'text': 'Your mom goes to college.'},\n",
" {'similarity': -0.0021449924597406094,\n",
" 'text': 'The current educational system is there only to condition you into being a good little consumer.'}],\n",
" 'status': 'OK',\n",
" 'time': '1.273949ms'}]"
]
},
"execution_count": 66,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"search = \"Do you snowboard or ski?\"\n",
"search_embedding = model.encode(search)\n",
"\n",
"# LET is really cool!\n",
"await db_admin.query('''\n",
" LET $search_vec = {0};\n",
" SELECT text, vector::similarity::cosine(embedding, $search_vec) as similarity FROM context ORDER BY similarity DESC;\n",
"'''.format(search_embedding.tolist()))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Cleanup"
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {},
"outputs": [],
"source": [
"await db_admin.close()\n",
"await db_alice.close()\n",
"await db_bob.close()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "wenv",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment