SDK engine

Google AI Mode

AI Mode ответ Google с text_blocks, reconstructed_markdown, references, быстрыми результатами, изображениями, видео, shopping/local блоками и related questions.

engine: google_ai_mode TS: XylopSearchEngines.GoogleAiMode JS: XylopSearchEngines.GoogleAiMode C#: XylopSearchEngines.GoogleAiMode Python: XylopSearchEngines.GOOGLE_AI_MODE PHP: XylopSearchEngines::GOOGLE_AI_MODE Ruby: XylopApiClient::Engines::GOOGLE_AI_MODE Java: XylopSearchEngines.GOOGLE_AI_MODE Kotlin: XylopSearchEngines.GOOGLE_AI_MODE Swift: XylopSearchEngines.googleAiMode Dart: XylopSearchEngines.googleAiMode C++: xylop::api::engines::google_ai_mode Go: xylop.EngineGoogleAiMode GET /search
TypeScript пример

Вызов через @xylop/api-client-typescript

import { XylopSearchClient, XylopSearchEngines } from "@xylop/api-client-typescript";

interface SearchResponse {
  [key: string]: unknown;
}

const client = new XylopSearchClient({
  apiKey: "YOUR_API_KEY"
});

const response = await client.search<SearchResponse>(
  XylopSearchEngines.GoogleAiMode,
  {
    q: "best cities for remote work",
    location: "Austin, Texas, United States",
    gl: "us",
    hl: "en",
    device: "desktop",
  });

TypeScript SDK написан на TypeScript, генерирует `.d.ts`, поддерживает generic response type и работает через `fetch`.

JavaScript пример

Вызов через @xylop/api-client

import { XylopSearchClient, XylopSearchEngines } from "@xylop/api-client";

const client = new XylopSearchClient({
  apiKey: "YOUR_API_KEY"
});

const response = await client.search(
  XylopSearchEngines.GoogleAiMode,
  {
    q: "best cities for remote work",
    location: "Austin, Texas, United States",
    gl: "us",
    hl: "en",
    device: "desktop",
  });

JavaScript SDK работает в Node.js 18+ и современных браузерах через `fetch`; TypeScript declarations входят в npm package.

C# пример

Вызов через XylopSearchClient

using Xylop.Api.Client;

var client = new XylopSearchClient(new HttpClient(), "YOUR_API_KEY");

using var response = await client.SearchJsonAsync(
    XylopSearchEngines.GoogleAiMode,
    new Dictionary<string, string?>
    {
        ["q"] = "best cities for remote work",
        ["location"] = "Austin, Texas, United States",
        ["gl"] = "us",
        ["hl"] = "en",
        ["device"] = "desktop",
    });

Для типизированного режима используйте `SearchAsync<TResponse>` и response-модель из `Xylop.Logic.SerpApiResponses.*`, которая входит в пакет C# SDK.

Python пример

Вызов через xylop-api-client

from xylop_api_client import XylopSearchClient, XylopSearchEngines

client = XylopSearchClient("YOUR_API_KEY")

response = client.search(
    XylopSearchEngines.GOOGLE_AI_MODE,
    {
        "q": "best cities for remote work",
        "location": "Austin, Texas, United States",
        "gl": "us",
        "hl": "en",
        "device": "desktop",
    },
)

Python SDK возвращает JSON как обычные `dict`/`list` и не требует runtime-зависимостей.

PHP пример

Вызов через xylop/api-client

<?php

use Xylop\Api\Client\XylopSearchClient;
use Xylop\Api\Client\XylopSearchEngines;

$client = new XylopSearchClient('YOUR_API_KEY');

$response = $client->search(
    XylopSearchEngines::GOOGLE_AI_MODE,
    [
        'q' => 'best cities for remote work',
        'location' => 'Austin, Texas, United States',
        'gl' => 'us',
        'hl' => 'en',
        'device' => 'desktop',
    ]
);

PHP SDK использует стандартные stream wrappers, возвращает decoded JSON array и не требует runtime-зависимостей.

Ruby пример

Вызов через xylop-api-client

require "xylop_api_client"

client = XylopApiClient::Client.new(api_key: "YOUR_API_KEY")

response = client.search(
  XylopApiClient::Engines::GOOGLE_AI_MODE,
  {
    "q" => "best cities for remote work",
    "location" => "Austin, Texas, United States",
    "gl" => "us",
    "hl" => "en",
    "device" => "desktop",
  }
)

Ruby SDK использует стандартные `net/http`, `json` и возвращает JSON как обычные Hash/Array значения.

Java пример

Вызов через xylop-api-client

import java.util.Map;
import ru.xylop.api.client.XylopSearchClient;
import ru.xylop.api.client.XylopSearchEngines;

var client = new XylopSearchClient("YOUR_API_KEY");

String responseJson = client.searchJson(
    XylopSearchEngines.GOOGLE_AI_MODE,
    Map.of(
        "q", "best cities for remote work",
        "location", "Austin, Texas, United States",
        "gl", "us",
        "hl", "en",
        "device", "desktop"
    ));

Java SDK использует `java.net.http.HttpClient`, возвращает JSON-строку и не требует runtime-зависимостей.

Kotlin пример

Вызов через xylop-api-kotlin-client

import ru.xylop.api.kotlin.XylopSearchClient
import ru.xylop.api.kotlin.XylopSearchEngines

val client = XylopSearchClient("YOUR_API_KEY")

val responseJson = client.searchJson(
    XylopSearchEngines.GOOGLE_AI_MODE,
    mapOf(
        "q" to "best cities for remote work",
        "location" to "Austin, Texas, United States",
        "gl" to "us",
        "hl" to "en",
        "device" to "desktop",
    ),
)

Kotlin SDK использует JVM `HttpClient`, возвращает JSON-строку и оставляет JSON-маппинг приложению.

Swift пример

Вызов через XylopApiClient

import XylopApiClient

let client = XylopSearchClient(apiKey: "YOUR_API_KEY")

let response = try await client.searchJSON(
    engine: XylopSearchEngines.googleAiMode,
    parameters: [
        "q": "best cities for remote work",
        "location": "Austin, Texas, United States",
        "gl": "us",
        "hl": "en",
        "device": "desktop",
    ]
)

Swift SDK использует Foundation `URLSession`, поддерживает async/await и возвращает Data, JSONSerialization values или caller-owned Decodable models.

Dart пример

Вызов через xylop_api_client

import 'package:xylop_api_client/xylop_api_client.dart';

Future<void> main() async {
  final client = XylopSearchClient('YOUR_API_KEY');

  final response = await client.search(
    XylopSearchEngines.googleAiMode,
    <String, Object?>{
      'q': 'best cities for remote work',
      'location': 'Austin, Texas, United States',
      'gl': 'us',
      'hl': 'en',
      'device': 'desktop',
    },
  );

  print(response);
}

Dart SDK использует `dart:io`, возвращает decoded JSON или raw response text и не требует runtime-зависимостей.

C++ пример

Вызов через Xylop.Api.Cpp

#include <xylop/api/client.hpp>
#include <xylop/api/curl_transport.hpp>

int main()
{
    xylop::api::search_client client(
        "YOUR_API_KEY",
        xylop::api::curl_transport);

    auto response_json = client.search_text(
        xylop::api::engines::google_ai_mode,
        {
            {"q", "best cities for remote work"},
            {"location", "Austin, Texas, United States"},
            {"gl", "us"},
            {"hl", "en"},
            {"device", "desktop"},
        });

    return 0;
}

C++ SDK имеет header-only C++17 core, принимает transport callback и может использовать optional libcurl adapter `xylop::api::curl_transport`.

Go пример

Вызов через Xylop.Api.Go

package main

import (
    "context"
    "log"

    xylop "github.com/Leonid-Vizel/Xylop.AdminPanel/src/Xylop.Api.Go"
)

func main() {
    client, err := xylop.NewClient("YOUR_API_KEY")
    if err != nil {
        log.Fatal(err)
    }

    var response map[string]any
    err = client.SearchJSON(
        context.Background(),
        xylop.EngineGoogleAiMode,
        xylop.Params(map[string]string{
            "q": "best cities for remote work",
            "location": "Austin, Texas, United States",
            "gl": "us",
            "hl": "en",
            "device": "desktop",
        }),
        &response)
    if err != nil {
        log.Fatal(err)
    }
}

Go SDK возвращает raw JSON bytes или декодирует ответ в пользовательскую структуру, `map[string]any` либо другой target.

Endpoint

HTTP контракт

URL
https://api.xylop.ru/search
Engine
google_ai_mode
API key
Передается SDK автоматически из настроек клиента.
Входные параметры

Параметры запроса

Параметр Тип Обязателен Значение Описание
api_key SDK string Да Ключ Xylop API. В SDK задается один раз в настройках или конструкторе клиента.
engine SDK string Да google_ai_mode Движок Google AI Mode.
q string Да best cities for remote work Поисковая фраза для AI Mode.
location string Нет Austin, Texas, United States Город или регион поиска.
gl string Нет us Код страны.
hl string Нет en Язык интерфейса.
device string Нет desktop desktop, tablet или mobile.
image_url string Нет https://example.com/image.jpg URL изображения как дополнительный контекст.
continuable string Нет false Вернуть токен для продолжения диалога.
Выходные параметры

Поля ответа

Поле Тип Источник Описание
search_metadata object пример ответа Метаданные запроса: статус, идентификатор, время выполнения и служебная информация провайдера.
text_blocks array пример ответа Типизированное поле ответа для этого engine; структура зависит от upstream-провайдера и параметров запроса.
reconstructed_markdown string пример ответа Типизированное поле ответа для этого engine; структура зависит от upstream-провайдера и параметров запроса.
references array пример ответа Типизированное поле ответа для этого engine; структура зависит от upstream-провайдера и параметров запроса.
related_questions array пример ответа Типизированное поле ответа для этого engine; структура зависит от upstream-провайдера и параметров запроса.
JSON

Пример ответа

{
  "search_metadata": {
    "status": "Success",
    "google_ai_mode_url": "https://www.google.com/search?..."
  },
  "text_blocks": [
    {
      "type": "paragraph",
      "snippet": "Austin, Lisbon and Mexico City are often strong options for remote work.",
      "reference_indexes": [
        0
      ]
    }
  ],
  "reconstructed_markdown": "Austin, Lisbon and Mexico City are often strong options for remote work.",
  "references": [
    {
      "title": "Remote work city guide",
      "link": "https://example.com/remote-work",
      "source": "example.com",
      "index": 0
    }
  ],
  "related_questions": [
    {
      "question": "Which city is cheapest for remote workers?"
    }
  ]
}