types.go 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package api
  2. import "runtime"
  3. type PullRequest struct {
  4. Model string `json:"model"`
  5. }
  6. type PullProgress struct {
  7. Total int64 `json:"total"`
  8. Completed int64 `json:"completed"`
  9. Percent float64 `json:"percent"`
  10. }
  11. type GenerateRequest struct {
  12. Model string `json:"model"`
  13. Prompt string `json:"prompt"`
  14. Options `json:"options"`
  15. }
  16. type GenerateResponse struct {
  17. Response string `json:"response"`
  18. }
  19. type Options struct {
  20. Seed int `json:"seed,omitempty"`
  21. // Backend options
  22. UseNUMA bool `json:"numa,omitempty"`
  23. // Model options
  24. NumCtx int `json:"num_ctx,omitempty"`
  25. NumBatch int `json:"num_batch,omitempty"`
  26. NumGPU int `json:"num_gpu,omitempty"`
  27. MainGPU int `json:"main_gpu,omitempty"`
  28. LowVRAM bool `json:"low_vram,omitempty"`
  29. F16KV bool `json:"f16_kv,omitempty"`
  30. LogitsAll bool `json:"logits_all,omitempty"`
  31. VocabOnly bool `json:"vocab_only,omitempty"`
  32. UseMMap bool `json:"use_mmap,omitempty"`
  33. UseMLock bool `json:"use_mlock,omitempty"`
  34. EmbeddingOnly bool `json:"embedding_only,omitempty"`
  35. // Predict options
  36. RepeatLastN int `json:"repeat_last_n,omitempty"`
  37. RepeatPenalty float32 `json:"repeat_penalty,omitempty"`
  38. FrequencyPenalty float32 `json:"frequency_penalty,omitempty"`
  39. PresencePenalty float32 `json:"presence_penalty,omitempty"`
  40. Temperature float32 `json:"temperature,omitempty"`
  41. TopK int `json:"top_k,omitempty"`
  42. TopP float32 `json:"top_p,omitempty"`
  43. TFSZ float32 `json:"tfs_z,omitempty"`
  44. TypicalP float32 `json:"typical_p,omitempty"`
  45. Mirostat int `json:"mirostat,omitempty"`
  46. MirostatTau float32 `json:"mirostat_tau,omitempty"`
  47. MirostatEta float32 `json:"mirostat_eta,omitempty"`
  48. NumThread int `json:"num_thread,omitempty"`
  49. }
  50. func DefaultOptions() Options {
  51. return Options{
  52. Seed: -1,
  53. UseNUMA: false,
  54. NumCtx: 512,
  55. NumBatch: 512,
  56. NumGPU: 1,
  57. LowVRAM: false,
  58. F16KV: true,
  59. UseMMap: true,
  60. UseMLock: false,
  61. RepeatLastN: 512,
  62. RepeatPenalty: 1.1,
  63. FrequencyPenalty: 0.0,
  64. PresencePenalty: 0.0,
  65. Temperature: 0.8,
  66. TopK: 40,
  67. TopP: 0.9,
  68. TFSZ: 1.0,
  69. TypicalP: 1.0,
  70. Mirostat: 0,
  71. MirostatTau: 5.0,
  72. MirostatEta: 0.1,
  73. NumThread: runtime.NumCPU(),
  74. }
  75. }