std/strutils,
std/unicode,
std/unidecode,
std/uri,
uuid4,
regex
const
GPT4_API* = "https://you.com/api/streamingSearch"
proc completeGpt4*(prompt: string): Future[string] {.async.} =
let u = $uuid4()
echo u
var client = newAsyncHttpClient(
userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 YaBrowser/24.4.0.0 Safari/537.36",
headers = {
"content-type": "application/json",
"cache-control": "no-cache, no-cache",
"accept": "*/*",
"accept-language": "ru,en;q=0.9,la;q=0.8,af;q=0.7,de;q=0.6,ko;q=0.5",
"referer": "https://you.com/search?q=gpt4&tbm=youchat",
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 YaBrowser/24.4.0.0 Safari/537.36",
"cookie": "safesearch_guest=Off; uuid_guest=" & u,
}.newHttpHeaders,
maxRedirects = 10
)
let args = encodeQuery({
"q": prompt,
"page": "1",
"count": "10",
"safeSearch": "Off",
"onShoppingPage": "false",
"mkt": "",
"responseFilter": "WebPages,Translations,TimeZone,Computation,RelatedSearches",
"domain": "youchat",
"queryTraceId": u,
"chat": "[]"
})
let response = await client.get(GPT4_API & "?" & args)
echo GPT4_API & "?" & args
return await response.body()
when isMainModule:
let data = waitFor completeGpt4("что ты умеешь?")
echo data
ну в целом ты же понимаешь что в версии на питоне чуть лучше симулируется браузер, а в версии nim тебе выводится капча?
я вижу, что капча, но я не смог решить проблему, поэтому и решил тут спросить
где headers и userAgent используется?
создай временную ссылку на webhook.site, сделай на нее запрос, посмотри что все таки в заголовках приходит
Обсуждают сегодня