(c *gin.Context)
| 2200 | } |
| 2201 | |
| 2202 | func (h *Handler) chatgptConversation(c *gin.Context) { |
| 2203 | var original_request chatgpt_types.ChatGPTRequest |
| 2204 | err := c.BindJSON(&original_request) |
| 2205 | if err != nil { |
| 2206 | c.JSON(400, gin.H{"error": gin.H{ |
| 2207 | "message": "Request must be proper JSON", |
| 2208 | "type": "invalid_request_error", |
| 2209 | "param": nil, |
| 2210 | "code": err.Error(), |
| 2211 | }}) |
| 2212 | return |
| 2213 | } |
| 2214 | if original_request.Messages[0].Author.Role == "" { |
| 2215 | original_request.Messages[0].Author.Role = "user" |
| 2216 | } |
| 2217 | |
| 2218 | proxyUrl := h.proxy.GetProxyIP() |
| 2219 | |
| 2220 | secret, status, err := h.secretFromAuthorization(c, false, false, proxyUrl) |
| 2221 | if err != nil { |
| 2222 | c.JSON(status, gin.H{"error": gin.H{ |
| 2223 | "message": err.Error(), |
| 2224 | "type": "authorization_error", |
| 2225 | "param": "Authorization", |
| 2226 | "code": status, |
| 2227 | }}) |
| 2228 | return |
| 2229 | } |
| 2230 | |
| 2231 | client := bogdanfinn.NewStdClient() |
| 2232 | turnStile, status, err := h.initTurnStileWithRetry(&client, &secret, proxyUrl) |
| 2233 | if err != nil { |
| 2234 | c.JSON(status, gin.H{ |
| 2235 | "message": err.Error(), |
| 2236 | "type": "InitTurnStile_request_error", |
| 2237 | "param": err, |
| 2238 | "code": status, |
| 2239 | }) |
| 2240 | return |
| 2241 | } |
| 2242 | |
| 2243 | response, err := chatgpt.POSTconversation(client, original_request, secret, turnStile, proxyUrl) |
| 2244 | if err != nil { |
| 2245 | c.JSON(500, gin.H{ |
| 2246 | "error": "error sending request", |
| 2247 | }) |
| 2248 | return |
| 2249 | } |
| 2250 | defer response.Body.Close() |
| 2251 | |
| 2252 | if chatgpt.Handle_request_error(c, response) { |
| 2253 | return |
| 2254 | } |
| 2255 | |
| 2256 | c.Header("Content-Type", response.Header.Get("Content-Type")) |
| 2257 | if cacheControl := response.Header.Get("Cache-Control"); cacheControl != "" { |
| 2258 | c.Header("Cache-Control", cacheControl) |
| 2259 | } |
nothing calls this directly
no test coverage detected