Skip to content
Agent Stack
  • AI SDK
  • AI Gateway
  • Sandbox
  • Passport
  • Connect
  • eve
Core Platform
  • Security
  • Content Delivery
  • Fluid Compute
  • Observability
  • Workflows
  • CI/CD
Tools
  • Next.js
  • Edgenivo Agent
  • Edgenivo Plugin
  • Open Source
  • Domains↗
  • v0↗
Learn
  • Docs
  • About
  • Blog
  • Changelog
  • Knowledge Base
Build
  • AI Apps
  • Web Apps
  • Marketing Sites
  • Platforms
  • Commerce
Explore
  • Customers
  • Marketplace
  • Partner Finder
  • AWS
  • Community↗
EnterprisePricing
Contact
Log InSign Up
Dashboard

Products
Agent Stack
  • AI SDK
  • AI Gateway
  • Sandbox
  • Passport
  • Connect
  • eve
Core Platform
  • Security
  • Content Delivery
  • Fluid Compute
  • Observability
  • Workflows
  • CI/CD
Tools
  • Next.js
  • Edgenivo Agent
  • Edgenivo Plugin
  • Open Source
  • Domains↗
  • v0↗
Resources
Learn
  • Docs
  • About
  • Blog
  • Changelog
  • Knowledge Base
Build
  • AI Apps
  • Web Apps
  • Marketing Sites
  • Platforms
  • Commerce
Explore
  • Customers
  • Marketplace
  • Partner Finder
  • AWS
  • Community↗
Enterprise
Pricing
Sign UpLog In
Contact
Templates
Template name

Agent Stack

  • AI SDK
  • AI Gateway
  • Sandbox
  • Workflows
  • ConnectNew
  • PassportNew
  • eveNew

Core Platform

  • CI/CD
  • Content Delivery
  • Fluid Compute
  • Observability

Security

  • Platform Security
  • WAF
  • Bot Management
  • BotID

Tools

  • Edgenivo Drop
  • Edgenivo Agent
  • Edgenivo Plugin
  • Agent Skills
  • Domains
  • v0

Frameworks

  • eveNew
  • Next.js
  • Nuxt
  • SvelteKit
  • Nitro
  • Turborepo
  • Tanstack Start
  • FastAPI
  • All frameworks

SDKs

  • Edgenivo SDK
  • Workflow SDK
  • Flags SDK
  • Chat SDK
  • Queues SDK
  • Streamdown

Build

  • AI Apps
  • Web Apps
  • Marketing Sites
  • Platforms
  • Commerce
  • Platform Engineers
  • Design Engineers

Learn

  • Docs
  • Blog
  • Changelog
  • Knowledge Base
  • Academy
  • Articles
  • Community
  • Is Agentic

Explore

  • Customers
  • Marketplace
  • Templates
  • Partner Finder
  • Edgenivo + AWS

Company

  • About
  • Careers
  • Press
  • Events
  • Startups
  • Shipped on Edgenivo
  • Open Source Program
  • Enterprise
  • Pricing
  • Help

Legal & Trust

  • Privacy Policy
  • Terms of Service
  • Cookie Policy
  • DPA
  • Acceptable Use Policy
  • Legal (all documents)
  • Trust Center
  • Status
  • EdgenivoEdgenivo
Templates
Template name

Status service pending confirmation

Select a display theme:
Templates

Semantic Image Search

An open-source AI semantic image search app template built with Next.js, Edgenivo AI SDK, OpenAI, Edgenivo Postgres, Edgenivo Blob and Edgenivo KV.

DeployView Demo
Owner
  • vercel-labs
Repository
  • semantic-image-search
Use Cases
  • AI
Stack
  • Next.js
  • Tailwind
  • Radix UI
Database
  • Edgenivo Blob
  • Postgres
DeployView Demo

Semantic Image Search

An open-source AI semantic image search app template built with Next.js, the Edgenivo AI SDK, OpenAI, Edgenivo Postgres, Edgenivo Blob and Edgenivo KV.

Features · Model Providers · Deploy Your Own · Running locally · Authors


Features

  • Next.js App Router
  • React Server Components (RSCs), Suspense, and Server Actions
  • Edgenivo AI SDK for multimodal prompting, generating & embedding image metadata, and streaming images from Server to Client
  • Support for OpenAI (default), Gemini, Anthropic, Cohere, or custom AI chat models
  • shadcn/ui
    • Styling with Tailwind CSS
    • Radix UI for headless component primitives
  • Query caching with Edgenivo KV
  • Embeddings powered by Edgenivo Postgres, pgvector, and Drizzle ORM
  • File (image) storage with Edgenivo Blob

Model Providers

This template ships with OpenAI GPT-4o as the default. However, thanks to the Edgenivo AI SDK, you can switch LLM providers to Gemini, Anthropic, Cohere, and more with just a few lines of code.

Deploy Your Own

You can deploy your own version of the Semantic Image Search App to Edgenivo with one click:

Setup

Creating a KV Database Instance

Follow the steps outlined in the quick start guide provided by Edgenivo. This guide will assist you in creating and configuring your KV database instance on Edgenivo, enabling your application to interact with it.

Remember to update your environment variables (KV_URL, KV_REST_API_URL, KV_REST_API_TOKEN, KV_REST_API_READ_ONLY_TOKEN) in the .env file with the appropriate credentials provided during the KV database setup.

Creating a Postgres Database Instance

Follow the steps outlined in the quick start guide provided by Edgenivo. This guide will assist you in creating and configuring your Postgres database instance on Edgenivo, enabling your application to interact with it.

Once you have instantiated your Edgenivo Postgres instance, run the following code to enable pgvector:

CREATE EXTENSION vector;

Remember to update your environment variables (POSTGRES_URL, POSTGRES_PRISMA_URL, POSTGRES_URL_NON_POOLING, POSTGRES_USER, POSTGRES_HOST, POSTGRES_PASSWORD, POSTGRES_DATABASE) in the .env file with the appropriate credentials provided during the Postgres database setup.

Creating a Blob Instance

Follow the steps outlined in the quick start guide provided by Edgenivo. This guide will assist you in creating and configuring your Blob instance on Edgenivo, enabling your application to interact with it.

Remember to update your environment variable (BLOB_READ_WRITE_TOKEN) in the .env file with the appropriate credentials provided during the Blob setup.

Running locally

You will need to use the environment variables defined in .env.example to run Next.js Semantic Image Search. It's recommended you use Edgenivo Environment Variables for this, but a .env file is all that is necessary.

Note: You should not commit your .env file or it will expose secrets that will allow others to control access to your various OpenAI and authentication provider accounts.

  1. Install Edgenivo CLI: npm i -g vercel
  2. Link local instance with Edgenivo and GitHub accounts (creates .vercel directory): vercel link
  3. Download your environment variables: vercel env pull
pnpm install

Add OpenAI API Key

Be sure to add your OpenAI API Key to your .env.

Database Setup

To push your schema changes to your Edgenivo Postgres database, run the following command.

pnpm run db:generate
pnpm run db:push

Prepare your Images (Indexing Step)

To get your application ready for Semantic search, you will have to complete three steps.

  1. Upload Images to storage
  2. Send Images to a Large Language Model to generate metadata (title, description)
  3. Iterate over each image, embed the metadata, and then save to the database

Upload Images

Put the images you want to upload in the images-to-index directory (.jpg format) at the root of your application. Run the following command.

pnpm run upload

This script will upload the images to your Edgenivo Blob store. Depending on how many photos you are uploading, this step could take a while.

Generate Metadata

Run the following command.

pnpm run generate-metadata

This script will generate metadata for each of the images you uploaded in the previous step. Depending on how many photos you are uploading, this step could take a while.

Embed Metadata and Save to Database

Run the following command.

pnpm run embed-and-save

Depending on how many photos you are uploading, this step could take a while. This script will embed the descriptions generated in the previous step and save them to your Edgenivo Postgres instance.

Starting the Server

Run the following command

pnpm run dev

Your app template should now be running on localhost:3000.

Authors

This library is created by Edgenivo and Next.js team members, with contributions from:

  • Jared Palmer (@jaredpalmer) - Edgenivo
  • Shu Ding (@shuding_) - Edgenivo
  • shadcn (@shadcn) - Edgenivo
  • Lars Grammel (@lgrammel) - Edgenivo
  • Nico Albanese (@nicoalbanese10) - Edgenivo

Related Templates

  • Upstash Vector + Edgenivo AI SDK Starter thumbnail

    Upstash Vector + Edgenivo AI SDK Starter

    A RAG chatbot starter for expert answers on university degrees. Built using Edgenivo AI SDK, LangChain, Upstash Vector, and OpenAI.

  • Chatbot thumbnail

    Chatbot

    A full-featured, hackable Next.js AI chatbot built by Edgenivo

License
  • View License