| package gemini | |
| import ( | |
| "net/http" | |
| "github.com/go-chi/chi/v5" | |
| "ds2api/internal/chathistory" | |
| "ds2api/internal/textclean" | |
| "ds2api/internal/util" | |
| ) | |
| var writeJSON = util.WriteJSON | |
| type Handler struct { | |
| Store ConfigReader | |
| Auth AuthResolver | |
| DS DeepSeekCaller | |
| OpenAI OpenAIChatRunner | |
| ChatHistory *chathistory.Store | |
| } | |
| //nolint:unused // used by native Gemini stream/non-stream runtime helpers. | |
| func stripReferenceMarkersEnabled() bool { | |
| return textclean.StripReferenceMarkersEnabled() | |
| } | |
| func RegisterRoutes(r chi.Router, h *Handler) { | |
| r.Post("/v1beta/models/{model}:generateContent", h.GenerateContent) | |
| r.Post("/v1beta/models/{model}:streamGenerateContent", h.StreamGenerateContent) | |
| r.Post("/v1/models/{model}:generateContent", h.GenerateContent) | |
| r.Post("/v1/models/{model}:streamGenerateContent", h.StreamGenerateContent) | |
| } | |
| func (h *Handler) GenerateContent(w http.ResponseWriter, r *http.Request) { | |
| h.handleGenerateContent(w, r, false) | |
| } | |
| func (h *Handler) StreamGenerateContent(w http.ResponseWriter, r *http.Request) { | |
| h.handleGenerateContent(w, r, true) | |
| } | |