Description
I am trying to add a feature that allow user upload good “prompt” and “answer” into set up class. Assume I have only two properties: “Prompt” and “Answer”, and is any option that allow me directly add new object “new prompt” and “new answer” into my class.
I know there is an alternative way is updating my dataset then reset the class, but that takes long time and not ‘smoothly’.
Server Setup Information
- Weaviate Server Version: v3
 
- Deployment Method: Weaviate Cloud
 
- Client Language and Version: Python and v3.26.2
 
             
            
              
              
              
            
            
           
          
            
            
              Hi @Zhenzhao_Tu !
You mean adding new properties?
If that’s the case, yes, you can add new properties.
Not sure I understood your issue 
             
            
              
              
              
            
            
           
          
            
            
              Sorry about the confusion,
I got only two properties in my scheme class: “prompt”, “answer”. Now I want to add one new objects (“new prompt”, “new answer”) into my existing class. Does that possible?
Or in the other words, it’s like add a new row into dataset then reset the weavite database so we can add new objects in the db.
I am not sure it’s making sense
             
            
              
              
              
            
            
           
          
            
            
              Hi!
You can add new objects (or rows) in you collection (schema/class/“table”).
Consider the following code that creates the collection you described:
import weaviate
from weaviate import classes as wvc
client = weaviate.connect_to_local()
collection = client.collections.create(
    name="MyCollection",
    vectorizer_config=wvc.config.Configure.Vectorizer.text2vec_openai(),
    properties=[
        wvc.config.Property(
            name="prompt",
            data_type=wvc.config.DataType.TEXT
        ),
        wvc.config.Property(
            name="answer",
            data_type=wvc.config.DataType.TEXT
        )
    ]
)
Now you can get that collection, and add objects to it:
collection = client.collections.get("MyCollection")
collection.data.insert({"prompt": "New Prompt", "answer": "New Answer"})
You can now retrieve those objects
query = collection.query.fetch_objects()
print(
    [ item.properties for item in query.objects ]
)
Let me know if this is what you want 
             
            
              
              
              
            
            
           
          
            
            
              Exactly what I need! Thanks!
             
            
              
              
              
            
            
           
          
            
            
              @DudaNogueira
I am also tried a way to add objects it looks like working which is different from your, can you check mine see if they are similar work thanks!
from client_setup import get_client
from weaviate.util import generate_uuid5
client = get_client()
# Create a new object
new_object = {
        "Prompt": "What is the capital of France?",
        "Answer": "Paris",
}
# define the add function
def add_object(new_object):
    new_data_uuid = generate_uuid5(new_object)
    # Add the object to Weaviate
    client.data_object.create(
            data_object=new_object,
            class_name="DSCode",
            uuid=new_data_uuid
    )
print(client.data_object.get_by_id(new_data_uuid, with_vector=False))
print(client.query.aggregate("DSCode").with_meta_count().do())
             
            
              
              
              
            
            
           
          
            
            
              Oh, I see.
This is because you are using the python v3 syntax.
When you install the version 4.4.4 weaviate-client python package, you have access to both v3 and v4 syntax.
this is how you would initiate a python v3 client (in deprecation):
client = weaviate.Client("http://localhost:8080")
and this is how you initiate the new python v4 client:
client = weaviate.connect_to_local()
We strongely recommend to use the new python v4 client, as it delivers a lot of improvements.
Let me know if this helps!