llm_service.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package facade
  2. import (
  3. "eta/eta_api/services/llm/facade/bus_response"
  4. "eta/eta_api/utils/llm"
  5. "eta/eta_api/utils/ws"
  6. "fmt"
  7. "github.com/gorilla/websocket"
  8. "github.com/rdlucklib/rdluck_tools/uuid"
  9. )
  10. var (
  11. llmService, _ = llm.GetInstance(llm.ETA_LLM_CLIENT)
  12. )
  13. func generateSessionCode() (code string) {
  14. return fmt.Sprintf("%s%s", "llm_session_", uuid.NewUUID().Hex32())
  15. }
  16. func AddSession(userId int, conn *websocket.Conn) {
  17. sessionId := generateSessionCode()
  18. session := ws.NewSession(userId, sessionId, conn)
  19. ws.Manager().AddSession(session)
  20. }
  21. func LLMKnowledgeBaseSearchDocs(search LLMKnowledgeSearch) (resp bus_response.SearchDocsEtaResponse, err error) {
  22. docs, err := llmService.SearchKbDocs(search.Query, search.KnowledgeBaseName)
  23. if err != nil {
  24. return
  25. }
  26. for _, doc := range docs.([]bus_response.SearchDocsResponse) {
  27. resp.Content = resp.Content + doc.PageContent
  28. }
  29. resp.Docs = docs.([]bus_response.SearchDocsResponse)
  30. return
  31. }
  32. type LLMKnowledgeSearch struct {
  33. Query string `json:"Query"`
  34. KnowledgeBaseName string `json:"KnowledgeBaseName"`
  35. }