gemini.go 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package model_setting
  2. import (
  3. "encoding/json"
  4. "one-api/common"
  5. )
  6. var geminiSafetySettings = map[string]string{
  7. "default": "OFF",
  8. "HARM_CATEGORY_CIVIC_INTEGRITY": "BLOCK_NONE",
  9. }
  10. func GetGeminiSafetySetting(key string) string {
  11. if value, ok := geminiSafetySettings[key]; ok {
  12. return value
  13. }
  14. return geminiSafetySettings["default"]
  15. }
  16. func GeminiSafetySettingFromJsonString(jsonString string) {
  17. geminiSafetySettings = map[string]string{}
  18. err := json.Unmarshal([]byte(jsonString), &geminiSafetySettings)
  19. if err != nil {
  20. geminiSafetySettings = map[string]string{
  21. "default": "OFF",
  22. "HARM_CATEGORY_CIVIC_INTEGRITY": "BLOCK_NONE",
  23. }
  24. }
  25. // check must have default
  26. if _, ok := geminiSafetySettings["default"]; !ok {
  27. geminiSafetySettings["default"] = common.GeminiSafetySetting
  28. }
  29. }
  30. func GeminiSafetySettingsJsonString() string {
  31. // check must have default
  32. if _, ok := geminiSafetySettings["default"]; !ok {
  33. geminiSafetySettings["default"] = common.GeminiSafetySetting
  34. }
  35. jsonString, err := json.Marshal(geminiSafetySettings)
  36. if err != nil {
  37. return "{}"
  38. }
  39. return string(jsonString)
  40. }
  41. var geminiVersionSettings = map[string]string{
  42. "default": "v1beta",
  43. "gemini-1.0-pro": "v1",
  44. }
  45. func GetGeminiVersionSetting(key string) string {
  46. if value, ok := geminiVersionSettings[key]; ok {
  47. return value
  48. }
  49. return geminiVersionSettings["default"]
  50. }
  51. func GeminiVersionSettingFromJsonString(jsonString string) {
  52. geminiVersionSettings = map[string]string{}
  53. err := json.Unmarshal([]byte(jsonString), &geminiVersionSettings)
  54. if err != nil {
  55. geminiVersionSettings = map[string]string{
  56. "default": "v1beta",
  57. }
  58. }
  59. // check must have default
  60. if _, ok := geminiVersionSettings["default"]; !ok {
  61. geminiVersionSettings["default"] = "v1beta"
  62. }
  63. }
  64. func GeminiVersionSettingsJsonString() string {
  65. // check must have default
  66. if _, ok := geminiVersionSettings["default"]; !ok {
  67. geminiVersionSettings["default"] = "v1beta"
  68. }
  69. jsonString, err := json.Marshal(geminiVersionSettings)
  70. if err != nil {
  71. return "{}"
  72. }
  73. return string(jsonString)
  74. }