| 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 |
| } |
|
|
| |
| 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) |
| } |
|
|