Public
Like
PineconeIndex
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
Viewing readonly version of main branch: v102View latest version
A simple interface for querying and managing your Pinecone vector database. Search through your documents using natural language queries.
To use PineconeIndex in your own Val Town project:
import PineconeIndex from "https://esm.town/v/peterqliu/PineconeIndex/PineconeIndex";
const pineconeKey = Deno.env.get("PINECONE_KEY");
const modelToken = Deno.env.get("OPENAI_KEY");
const index = new PineconeIndex({
name: "2025-all-docs",
model: "text-embedding-ada-002",
dimensions: 1536,
pineconeKey,
modelToken,
});
// Use the methods directly
const results = await index.query("machine learning applications");
await index.upsertRecords(["Document 1", "Document 2"]);
await index.empty();
Find the most relevant documents for your query.
const results = await index.query("your search text");
Returns:
{ "matches": [ { "id": "doc-123", "score": 0.95, "metadata": { "text": "Machine learning is transforming..." } } ] }
Upload new documents to your index.
await index.upsertRecords([
"First document content",
"Second document content",
]);
Remove all documents from your index.
await index.empty();
Create a new Pinecone index (if it doesn't exist).
await index.create();
import PineconeIndex from "https://esm.town/v/peterqliu/PineconeIndex/PineconeIndex";
const index = new PineconeIndex({
name: "my-documents",
model: "text-embedding-ada-002",
dimensions: 1536,
pineconeKey: Deno.env.get("PINECONE_KEY"),
modelToken: Deno.env.get("OPENAI_KEY"),
});
// Add some documents
await index.upsertRecords([
"AI is revolutionizing healthcare",
"Machine learning enables automation",
"Solar energy is becoming more efficient",
]);
// Search for relevant documents
const results = await index.query("renewable energy technologies");
console.log(results.matches);
PineconeIndex also provides handleRequest as a convenience method to access
your indices via HTTP. This is useful when multiple other vals need to access
the index, or when we granting access without sharing Pinecone or OpenAI keys.
// query index with string for nearest neighbors
export default async function (req: Request): Promise<Response> {
return await index.handleRequest(req);
}
Operations are determined by the URL path. The first segment after the domain specifies the operation to perform.
const API_URL = "https://your-server-url.web.val.run";
// Search for documents: append the desired operation to the url
const searchResponse = await fetch(`${API_URL}/query/`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify("artificial intelligence trends"),
});