I think… I must do a query to pinecone to search a data base… after searching the database I suppose pinecone comes up with something back that OpenAI can use? ← but how do I extract useful information from the query response to feed it back to OpenAI?.. so far I can only see vectors from the response, and OpenAI works with actual text.
According the link for query results I only see vectors… how can this be transformed into useful data to feed it back to the AI?
FOLLOW UP QUESTIONS:
Is there a sample of the complete body of the response that I can see?.. this way it would be easier to track all the options…
Furthermore… is there a sample of the body for the upsert? I have seem some sample codes, but they might be short with all the information I need to do a proper query later on.
I can put small sections of the sample code I have if needed… I need to figured out how to connect the dots…
Commonly only the embeddings of your content is stored in Pinecone as vectors. The original content (say text for example) is not stored in Pinecone unless you opt to include it as Metadata.
Also, there are limitations to the amount of metadata that can be stored and it can has a cost impact. Another approach is to maintain a mapping outside of Pinecone that allows you to lookup the original content (pre-embeddings) using the ID that you generated for each embedding before inserting it into Pinecone.
When you query Pinecone you are searching for ‘n’ number of ‘similar’ items as vectors. The response from Pinecone includes the IDs of those vectors (that you previously inserted) that most closely match your search. Note that If you store the original text as Metadata you’ll need to set the parameter “includeMetadata” on your query to have the Metadata associated with each Vector returned.
To make use of those results, say for example sending the most closely matching product descriptions, to OpenAI, you’d need to take those returned vector IDs and use them to lookup the original text version of the content and formulate a prompt to send over to OpenAI. This requires that you can access (lookup by ID) the corresponding original text.
This tutorial goes through a simple version of those steps, except it does not take the last step of calling OpenAI.
Say… for a question/answer bot… during the embedding/upsert process to pinecone I could add metadata that could include the question / answer text… maybe… I could tap into the metadata text and feed it back to openai…
I finally came across a sample from the github repo… but its confusing when you dont have a full sample of the body response for the query.
If you have a table or data source where you can lookup the question/answer as text by the ID you would just need to make a subsequent call to that source and pull back the corresponding fields for question and answer.
Otherwise try storing question and answer as metadata as part of your insert to Pinecone and then set the parameter “includeMetadata” on your query to have the Metadata associated with each Vector returned and see if that meets your needs. At the very least it should give you a more informative query response that helps you understand what the results of your Pinecone query are.