build backend to collect and search using embeddings
This commit is contained in:
79
backend/main.go
Normal file
79
backend/main.go
Normal file
@ -0,0 +1,79 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"embed"
|
||||
"git.sa.vin/legislature-tracker/backend/AI"
|
||||
"git.sa.vin/legislature-tracker/backend/search"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"git.sa.vin/legislature-tracker/backend/Leg"
|
||||
"git.sa.vin/legislature-tracker/backend/cachedAPI"
|
||||
"git.sa.vin/legislature-tracker/backend/datastore"
|
||||
"github.com/payne8/go-libsql-dual-driver"
|
||||
)
|
||||
|
||||
//go:embed migrations/*.sql
|
||||
var migrationFiles embed.FS
|
||||
|
||||
func main() {
|
||||
|
||||
logger := log.New(os.Stdout, "any-remark", log.LstdFlags)
|
||||
primaryUrl := os.Getenv("LIBSQL_DATABASE_URL")
|
||||
authToken := os.Getenv("LIBSQL_AUTH_TOKEN")
|
||||
|
||||
tdb, err := libsqldb.NewLibSqlDB(
|
||||
primaryUrl,
|
||||
libsqldb.WithMigrationFiles(migrationFiles),
|
||||
libsqldb.WithAuthToken(authToken),
|
||||
libsqldb.WithLocalDBName("local.db"), // will not be used for remote-only
|
||||
)
|
||||
if err != nil {
|
||||
logger.Printf("failed to open db %s: %s", primaryUrl, err)
|
||||
log.Fatalln(err)
|
||||
return
|
||||
}
|
||||
err = tdb.Migrate()
|
||||
if err != nil {
|
||||
logger.Printf("failed to migrate db %s: %s", primaryUrl, err)
|
||||
log.Fatalln(err)
|
||||
return
|
||||
}
|
||||
|
||||
mapper := datastore.NewMapper(tdb.DB)
|
||||
api := cachedAPI.NewCachedAPI(mapper)
|
||||
utah := Leg.NewUtahLeg(api)
|
||||
ai, err := AI.NewAI()
|
||||
if err != nil {
|
||||
log.Fatalf("error creating AI: %v", err)
|
||||
}
|
||||
searchService, err := search.NewSearch(search.WithAI(ai), search.WithMapper(mapper))
|
||||
if err != nil {
|
||||
log.Fatalf("error creating search: %v", err)
|
||||
}
|
||||
|
||||
test, err := utah.GetBillList("2024", "GS")
|
||||
if err != nil {
|
||||
log.Fatalf("error getting bill list: %v", err)
|
||||
}
|
||||
log.Printf("bill list: %+v", test)
|
||||
|
||||
test2, err := utah.GetBillDetails("2024", "GS", "HB0001")
|
||||
if err != nil {
|
||||
log.Fatalf("error getting bill details: %v", err)
|
||||
}
|
||||
log.Printf("bill details: %+v", test2)
|
||||
|
||||
//err = searchService.InsertContent(context.Background(), test2.TrackingID, test2.GeneralProvisions+" "+test2.HilightedProvisions)
|
||||
//if err != nil {
|
||||
// log.Fatalf("error inserting content: %v", err)
|
||||
//}
|
||||
|
||||
results, err := searchService.Search("I'm looking for a bill that affects public education")
|
||||
if err != nil {
|
||||
log.Fatalf("error searching: %v", err)
|
||||
}
|
||||
|
||||
log.Printf("search results: %+v", results)
|
||||
|
||||
}
|
Reference in New Issue
Block a user