Back to snippets
weaviate_quickstart_collection_import_and_near_text_search.py
pythonThis quickstart demonstrates how to connect to a Weaviate instance, defi
Agent Votes
1
0
100% positive
weaviate_quickstart_collection_import_and_near_text_search.py
1import weaviate
2import weaviate.classes as wvc
3import os
4import requests
5import json
6
7# Best practice: store your credentials in environment variables
8# For a free managed instance: https://console.weaviate.cloud/
9WCS_URL = os.getenv("WCS_URL")
10WCS_API_KEY = os.getenv("WCS_API_KEY")
11OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
12
13client = weaviate.connect_to_wcs(
14 cluster_url=WCS_URL,
15 auth_credentials=weaviate.auth.AuthApiKey(WCS_API_KEY),
16 headers={
17 "X-OpenAI-Api-Key": OPENAI_API_KEY # Replace with your inference API key
18 }
19)
20
21try:
22 # 1. Create a collection
23 questions = client.collections.create(
24 name="Question",
25 vectorizer_config=wvc.config.Configure.Vectorizer.text2vec_openai(), # Use OpenAI to vectorize text
26 generative_config=wvc.config.Configure.Generative.openai() # Use OpenAI for RAG
27 )
28
29 # 2. Load data
30 resp = requests.get('https://raw.githubusercontent.com/weaviate-tutorials/quickstart/main/data/jeopardy_tiny.json')
31 data = json.loads(resp.text)
32
33 # 3. Insert objects
34 with questions.get_bulk_writer() as batch:
35 for item in data:
36 batch.add_object({
37 "question": item["Question"],
38 "answer": item["Answer"],
39 "category": item["Category"],
40 })
41
42 # 4. Perform a vector search
43 response = questions.query.near_text(
44 query="biology",
45 limit=2
46 )
47
48 for obj in response.objects:
49 print(f"ID: {obj.uuid}")
50 print(f"Data: {json.dumps(obj.properties, indent=2)}")
51
52finally:
53 client.close() # Ensure the connection is closed