30 lines
660 B
Go
30 lines
660 B
Go
|
|
package server
|
||
|
|
|
||
|
|
import (
|
||
|
|
"context"
|
||
|
|
"os"
|
||
|
|
"path/filepath"
|
||
|
|
|
||
|
|
"github.com/VictorVargas/rony-chat-bot/internal/portfolio"
|
||
|
|
)
|
||
|
|
|
||
|
|
type ragStore = *portfolio.Store
|
||
|
|
|
||
|
|
func osWriteFile(path string, data []byte, perm os.FileMode) error {
|
||
|
|
if err := os.MkdirAll(filepath.Dir(path), 0o755); err != nil {
|
||
|
|
return err
|
||
|
|
}
|
||
|
|
return os.WriteFile(path, data, perm)
|
||
|
|
}
|
||
|
|
|
||
|
|
func ragOpenStore(dbPath, srcDir string) (ragStore, error) {
|
||
|
|
store, err := portfolio.OpenStore(dbPath)
|
||
|
|
if err != nil {
|
||
|
|
return nil, err
|
||
|
|
}
|
||
|
|
if _, _, err := store.Reindex(context.Background(), srcDir, portfolio.DefaultChunkerConfig()); err != nil {
|
||
|
|
_ = store.Close()
|
||
|
|
return nil, err
|
||
|
|
}
|
||
|
|
return store, nil
|
||
|
|
}
|