# Embed data
data = [
{"id": "code1", "text": "def factorial(n):\n if n == 0:\n return 1\n return n * factorial(n-1)"},
{"id": "code2", "text": "Sort a list using the quicksort algorithm.\nSteps:\n1. Select a pivot.\n2. Partition the list into elements smaller and larger than the pivot.\n3. Recursively apply the process to partitions.\n4. Combine results."},
{"id": "code3", "text": "def reverse_string(s):\n return s[::-1]"},
{"id": "code4", "text": "Determine if a number is prime - iterate from 2 to sqrt(num) to check divisibility."},
{"id": "code5", "text": "def fibonacci(n):\n if n <= 0:\n return 0\n elif n == 1:\n return 1\n return fibonacci(n-1) + fibonacci(n-2)"},
]
import voyageai
vo = voyageai.Client(api_key=VOYAGE_API_KEY)
model_id = "voyage-code-2"
def embed(docs: list[str], input_type: str) -> list[list[float]]:
embeddings = vo.embed(
docs,
model=model_id,
input_type=input_type
).embeddings
return embeddings
# Use "document" input type for documents
embeddings = embed([d["text"] for d in data], input_type="document")
vectors = []
for d, e in zip(data, embeddings):
vectors.append({
"id": d['id'],
"values": e,
"metadata": {'text': d['text']}
})
index.upsert(
vectors=vectors,
namespace="ns1"
)