llm_factory.go 706 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package llm
  2. import (
  3. "errors"
  4. )
  5. var (
  6. llmInstanceMap = make(map[string]LLMService)
  7. )
  8. const (
  9. ETA_LLM_CLIENT = "eta_llm"
  10. )
  11. func Register(name string, llmClient LLMService) (err error) {
  12. if name == "" {
  13. err = errors.New("模型实例名不能为空")
  14. return
  15. }
  16. if _, ok := llmInstanceMap[name]; ok {
  17. err = errors.New("模型实例已经存在")
  18. return
  19. }
  20. llmInstanceMap[name] = llmClient
  21. return
  22. }
  23. func GetInstance(name string) (llmClient LLMService, err error) {
  24. if name == "" {
  25. err = errors.New("模型实例名不能为空")
  26. return
  27. }
  28. if _, ok := llmInstanceMap[name]; !ok {
  29. err = errors.New("当前模型类型不支持")
  30. return
  31. }
  32. llmClient = llmInstanceMap[name]
  33. return
  34. }