types.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. package api
  2. type PullRequest struct {
  3. Model string `json:"model"`
  4. }
  5. type PullProgress struct {
  6. Total int64 `json:"total"`
  7. Completed int64 `json:"completed"`
  8. Percent float64 `json:"percent"`
  9. }
  10. type GenerateRequest struct {
  11. Model string `json:"model"`
  12. Prompt string `json:"prompt"`
  13. ModelOptions *ModelOptions `json:"model_opts,omitempty"`
  14. PredictOptions *PredictOptions `json:"predict_opts,omitempty"`
  15. }
  16. type ModelOptions struct {
  17. ContextSize int `json:"context_size,omitempty"`
  18. Seed int `json:"seed,omitempty"`
  19. NBatch int `json:"n_batch,omitempty"`
  20. F16Memory bool `json:"memory_f16,omitempty"`
  21. MLock bool `json:"mlock,omitempty"`
  22. MMap bool `json:"mmap,omitempty"`
  23. VocabOnly bool `json:"vocab_only,omitempty"`
  24. LowVRAM bool `json:"low_vram,omitempty"`
  25. Embeddings bool `json:"embeddings,omitempty"`
  26. NUMA bool `json:"numa,omitempty"`
  27. NGPULayers int `json:"gpu_layers,omitempty"`
  28. MainGPU string `json:"main_gpu,omitempty"`
  29. TensorSplit string `json:"tensor_split,omitempty"`
  30. }
  31. type PredictOptions struct {
  32. Seed int `json:"seed,omitempty"`
  33. Threads int `json:"threads,omitempty"`
  34. Tokens int `json:"tokens,omitempty"`
  35. TopK int `json:"top_k,omitempty"`
  36. Repeat int `json:"repeat,omitempty"`
  37. Batch int `json:"batch,omitempty"`
  38. NKeep int `json:"nkeep,omitempty"`
  39. TopP float64 `json:"top_p,omitempty"`
  40. Temperature float64 `json:"temp,omitempty"`
  41. Penalty float64 `json:"penalty,omitempty"`
  42. F16KV bool
  43. DebugMode bool
  44. StopPrompts []string
  45. IgnoreEOS bool `json:"ignore_eos,omitempty"`
  46. TailFreeSamplingZ float64 `json:"tfs_z,omitempty"`
  47. TypicalP float64 `json:"typical_p,omitempty"`
  48. FrequencyPenalty float64 `json:"freq_penalty,omitempty"`
  49. PresencePenalty float64 `json:"pres_penalty,omitempty"`
  50. Mirostat int `json:"mirostat,omitempty"`
  51. MirostatETA float64 `json:"mirostat_lr,omitempty"`
  52. MirostatTAU float64 `json:"mirostat_ent,omitempty"`
  53. PenalizeNL bool `json:"penalize_nl,omitempty"`
  54. LogitBias string `json:"logit_bias,omitempty"`
  55. PathPromptCache string
  56. MLock bool `json:"mlock,omitempty"`
  57. MMap bool `json:"mmap,omitempty"`
  58. PromptCacheAll bool
  59. PromptCacheRO bool
  60. MainGPU string
  61. TensorSplit string
  62. }
  63. var DefaultModelOptions ModelOptions = ModelOptions{
  64. ContextSize: 512,
  65. Seed: 0,
  66. F16Memory: true,
  67. MLock: false,
  68. Embeddings: true,
  69. MMap: true,
  70. LowVRAM: false,
  71. }
  72. var DefaultPredictOptions PredictOptions = PredictOptions{
  73. Seed: -1,
  74. Threads: -1,
  75. Tokens: 512,
  76. Penalty: 1.1,
  77. Repeat: 64,
  78. Batch: 512,
  79. NKeep: 64,
  80. TopK: 90,
  81. TopP: 0.86,
  82. TailFreeSamplingZ: 1.0,
  83. TypicalP: 1.0,
  84. Temperature: 0.8,
  85. FrequencyPenalty: 0.0,
  86. PresencePenalty: 0.0,
  87. Mirostat: 0,
  88. MirostatTAU: 5.0,
  89. MirostatETA: 0.1,
  90. MMap: true,
  91. StopPrompts: []string{"llama"},
  92. }
  93. type GenerateResponse struct {
  94. Response string `json:"response"`
  95. }