Support xlsx vector name upload.

This commit is contained in:
Haifeng Luo 2022-04-05 10:19:58 +08:00
parent fa07a19920
commit fe1092017c
7 changed files with 86 additions and 0 deletions

1
go.mod
View File

@ -6,6 +6,7 @@ require (
github.com/astaxie/beego v1.12.3
github.com/casdoor/casdoor-go-sdk v0.3.3
github.com/go-sql-driver/mysql v1.6.0
github.com/tealeg/xlsx v1.0.5
xorm.io/core v0.7.3
xorm.io/xorm v1.2.5
)

2
go.sum
View File

@ -471,6 +471,8 @@ github.com/syndtr/goleveldb v0.0.0-20160425020131-cfa635847112/go.mod h1:Z4AUp2K
github.com/syndtr/goleveldb v0.0.0-20181127023241-353a9fca669c/go.mod h1:Z4AUp2Km+PwemOoO/VB5AOx9XSsIItzFjoJlOSiYmn0=
github.com/syndtr/goleveldb v1.0.0 h1:fBdIW9lB4Iz0n9khmH8w27SJ3QEJ7+IgjPEwGSZiFdE=
github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ=
github.com/tealeg/xlsx v1.0.5 h1:+f8oFmvY8Gw1iUXzPk+kz+4GpbDZPK1FhPiQRd+ypgE=
github.com/tealeg/xlsx v1.0.5/go.mod h1:btRS8dz54TDnvKNosuAqxrM1QgN1udgk9O34bDCnORM=
github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
github.com/ugorji/go v0.0.0-20171122102828-84cb69a8af83/go.mod h1:hnLbHMwcvSihnDhEfx2/BzKp2xb0Y+ErdfYcrs9tkJQ=
github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=

29
object/dataset_upload.go Normal file
View File

@ -0,0 +1,29 @@
package object
import (
"github.com/openbrain/openbrain/util"
"github.com/openbrain/openbrain/xlsx"
)
func uploadVectorNames(owner string, fileId string) bool {
table := xlsx.ReadXlsxFile(fileId)
vectors := []*Vector{}
for _, line := range table {
vector := &Vector{
Name: line[0],
Data: []float64{},
}
vectors = append(vectors, vector)
}
dataset := &Dataset{
Owner: owner,
Name: "word",
CreatedTime: util.GetCurrentTime(),
DisplayName: "word",
Distance: 100,
Vectors: vectors,
}
return AddDataset(dataset)
}

View File

@ -0,0 +1,9 @@
package object
import "testing"
func TestUploadVectorNames(t *testing.T) {
InitConfig()
uploadVectorNames("admin", "../../tmpFiles/【最原始版】词汇表—单行—去重后")
}

7
util/setting.go Normal file
View File

@ -0,0 +1,7 @@
package util
import "fmt"
func GetUploadXlsxPath(fileId string) string {
return fmt.Sprintf("tmpFiles/%s.xlsx", fileId)
}

9
util/time.go Normal file
View File

@ -0,0 +1,9 @@
package util
import "time"
func GetCurrentTime() string {
timestamp := time.Now().Unix()
tm := time.Unix(timestamp, 0)
return tm.Format(time.RFC3339)
}

29
xlsx/xlsx.go Normal file
View File

@ -0,0 +1,29 @@
package xlsx
import (
"github.com/openbrain/openbrain/util"
"github.com/tealeg/xlsx"
)
func ReadXlsxFile(fileId string) [][]string {
path := util.GetUploadXlsxPath(fileId)
file, err := xlsx.OpenFile(path)
if err != nil {
panic(err)
}
res := [][]string{}
for _, sheet := range file.Sheets {
for _, row := range sheet.Rows {
line := []string{}
for _, cell := range row.Cells {
text := cell.String()
line = append(line, text)
}
res = append(res, line)
}
break
}
return res
}