You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

wordset.go 2.0 kB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. package object
  2. import (
  3. "fmt"
  4. "github.com/casbin/casibase/util"
  5. "xorm.io/core"
  6. )
  7. type Wordset struct {
  8. Owner string `xorm:"varchar(100) notnull pk" json:"owner"`
  9. Name string `xorm:"varchar(100) notnull pk" json:"name"`
  10. CreatedTime string `xorm:"varchar(100)" json:"createdTime"`
  11. DisplayName string `xorm:"varchar(100)" json:"displayName"`
  12. DistanceLimit int `json:"distanceLimit"`
  13. Vectorset string `xorm:"varchar(100)" json:"vectorset"`
  14. Vectors []*Vector `xorm:"mediumtext" json:"vectors"`
  15. }
  16. func GetGlobalWordsets() []*Wordset {
  17. wordsets := []*Wordset{}
  18. err := adapter.engine.Asc("owner").Desc("created_time").Find(&wordsets)
  19. if err != nil {
  20. panic(err)
  21. }
  22. return wordsets
  23. }
  24. func GetWordsets(owner string) []*Wordset {
  25. wordsets := []*Wordset{}
  26. err := adapter.engine.Desc("created_time").Find(&wordsets, &Wordset{Owner: owner})
  27. if err != nil {
  28. panic(err)
  29. }
  30. return wordsets
  31. }
  32. func getWordset(owner string, name string) *Wordset {
  33. wordset := Wordset{Owner: owner, Name: name}
  34. existed, err := adapter.engine.Get(&wordset)
  35. if err != nil {
  36. panic(err)
  37. }
  38. if existed {
  39. return &wordset
  40. } else {
  41. return nil
  42. }
  43. }
  44. func GetWordset(id string) *Wordset {
  45. owner, name := util.GetOwnerAndNameFromId(id)
  46. return getWordset(owner, name)
  47. }
  48. func UpdateWordset(id string, wordset *Wordset) bool {
  49. owner, name := util.GetOwnerAndNameFromId(id)
  50. if getWordset(owner, name) == nil {
  51. return false
  52. }
  53. _, err := adapter.engine.ID(core.PK{owner, name}).AllCols().Update(wordset)
  54. if err != nil {
  55. panic(err)
  56. }
  57. //return affected != 0
  58. return true
  59. }
  60. func AddWordset(wordset *Wordset) bool {
  61. affected, err := adapter.engine.Insert(wordset)
  62. if err != nil {
  63. panic(err)
  64. }
  65. return affected != 0
  66. }
  67. func DeleteWordset(wordset *Wordset) bool {
  68. affected, err := adapter.engine.ID(core.PK{wordset.Owner, wordset.Name}).Delete(&Wordset{})
  69. if err != nil {
  70. panic(err)
  71. }
  72. return affected != 0
  73. }
  74. func (wordset *Wordset) GetId() string {
  75. return fmt.Sprintf("%s/%s", wordset.Owner, wordset.Name)
  76. }

基于Casbin的开源AI领域知识库平台

Contributors (1)