MCPcopy Create free account
hub / github.com/aurora-develop/aurora / chatgptConversation

Method chatgptConversation

initialize/handlers.go:2202–2265  ·  view source on GitHub ↗
(c *gin.Context)

Source from the content-addressed store, hash-verified

2200}
2201
2202func (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 }

Callers

nothing calls this directly

Calls 5

NewStdClientFunction · 0.92
GetProxyIPMethod · 0.80
GetMethod · 0.80

Tested by

no test coverage detected