Skip to content

BecktorDB - Vector database with text document loading / chunking / embeddings and similarity search

Notifications You must be signed in to change notification settings

srgchrksv/becktordb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

becktordb - Vector Database

The Go gopher was designed by Renee French. (http://reneefrench.blogspot.com/) The Go gopher was originally designed by Renee French. Source: https://golang.org/doc/gopher

Features:

  • Persistant storage:

    • Writes and reads binary file
  • Document loader with chunking

  • Embeddings service:

    • Gemini
    • Bedrock
      • To run get access keys in IAM and set in .env file and enable 'cohere.embed-english' at Bedrock AWS:
        AWS_ACCESS_KEY_ID=
        AWS_REGION=
        AWS_SECRET_ACCESS_KEY=
        
  • Vector similarity search:

    • Cosine

Usage examples in examples directory:

Gemini:

examples/gemini/main.go

	// init vectorDB - becktordb - repository
	db := becktordb.NewVectorDB(databaseName)
	// init business layer - services
	services := services.NewBectorDBservice(db)
	// Init gemini
	gemini := services.Gemini.Init()
	// embedd all documents in the directoriesForRetrieval directory
	err = gemini.GeminiEmbeddingsPath(directoriesForRetrieval, 50)
	if err != nil {
		log.Fatal(err)
	}
	// Query vectorDB - becktordb for similarity
	results, err := gemini.GeminiEmbeddingsQuery("What going on today?", 2)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println("Top 2 results:", results)

Bedrock:

examples/bedrock/main.go

db := becktordb.NewVectorDB(databaseName)
	// init business layer - services
	services := services.NewBectorDBservice(db)
	// init bedrock
	bedrock := services.Bedrock.Init()
	err = bedrock.BedrockEmbeddingsPath(directoriesForRetrieval, 50)
	if err != nil {
		log.Fatal(err)
	}
    // Query vectorDB - becktordb for similarity
	results, err := bedrock.BedrockEmbeddingsQuery("What going on today?", 2)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println("Top 2 results:", results)

About

BecktorDB - Vector database with text document loading / chunking / embeddings and similarity search

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages