Отправить базовый запрос

В Completions API поддерживаются параметры temperature, max_tokens, stream, response_format.

Чтобы воспользоваться примером, вам понадобится сервисный аккаунт с ролью ai.languageModels.user и API-ключ с областью действия yc.ai.foundationModels.execute. API-ключ, который вы можете создать в AI Studio, имеет такие разрешения. Пример того, как настроить рабочее окружение, можно найти в разделе Начало работы.

import openai
        
        YANDEX_API_KEY = "<API-ключ>"
        YANDEX_FOLDER_ID = "<идентификатор_каталога>"
        YANDEX_MODEL = "yandexgpt/latest"
        
        client = openai.OpenAI(
            api_key=YANDEX_API_KEY,
            base_url="https://ai.api.cloud.yandex.net/v1",
            project=YANDEX_FOLDER_ID,
        )
        
        response = client.chat.completions.create(
            model=f"gpt://{YANDEX_FOLDER_ID}/{YANDEX_MODEL}",
            messages=[
                {"role": "system", "content": "Ты очень умный ассистент."},
                {"role": "user", "content": "Что умеют большие языковые модели?"}
            ],
            max_tokens=2000,
            temperature=0.3,
            stream=True,
        )
        
        for chunk in response:
            if chunk.choices[0].delta.content is not None:
                print(chunk.choices[0].delta.content, end="")
        

Где:

Пример результата:

Большие языковые модели (LLM) умеют генерировать текст, отвечать на вопросы, переводить,
        резюмировать документы, писать код и многое другое. Они обучены на больших объемах текстовых
        данных и способны решать широкий спектр задач, связанных с обработкой естественного языка.
        
import OpenAI from "openai";
        
        const YANDEX_API_KEY = "<API-ключ>";
        const YANDEX_FOLDER_ID = "<идентификатор_каталога>";
        const YANDEX_MODEL = "yandexgpt/latest";
        
        const client = new OpenAI({
          apiKey: YANDEX_API_KEY,
          baseURL: "https://ai.api.cloud.yandex.net/v1",
          project: YANDEX_FOLDER_ID,
        });
        
        const completion = await client.chat.completions.create({
          model: `gpt://${YANDEX_FOLDER_ID}/${YANDEX_MODEL}`,
          messages: [
            { role: "system", content: "Ты очень умный ассистент." },
            { role: "user", content: "Что умеют большие языковые модели?" },
          ],
          max_tokens: 2000,
          temperature: 0.3,
        });
        
        console.log(completion.choices[0].message.content);
        

Где:

Пример результата:

Большие языковые модели (LLM) умеют генерировать текст, отвечать на вопросы, переводить,
        резюмировать документы, писать код и многое другое. Они обучены на больших объемах текстовых
        данных и способны решать широкий спектр задач, связанных с обработкой естественного языка.
        
package main
        
        import (
            "context"
            "fmt"
            "os"
        
            "github.com/openai/openai-go"
            "github.com/openai/openai-go/option"
        )
        
        func main() {
            yandexAPIKey := os.Getenv("YANDEX_API_KEY")
            yandexFolderID := os.Getenv("YANDEX_FOLDER_ID")
            yandexModel := "yandexgpt/latest"
        
            client := openai.NewClient(
                option.WithAPIKey(yandexAPIKey),
                option.WithBaseURL("https://ai.api.cloud.yandex.net/v1"),
                option.WithHeader("OpenAI-Project", yandexFolderID),
            )
        
            completion, err := client.Chat.Completions.New(
                context.Background(),
                openai.ChatCompletionNewParams{
                    Model: fmt.Sprintf("gpt://%s/%s", yandexFolderID, yandexModel),
                    Messages: []openai.ChatCompletionMessageParamUnion{
                        openai.SystemMessage("Ты очень умный ассистент."),
                        openai.UserMessage("Что умеют большие языковые модели?"),
                    },
                    MaxTokens:   openai.Int(2000),
                    Temperature: openai.Float(0.3),
                },
            )
            if err != nil {
                fmt.Fprintf(os.Stderr, "Ошибка: %v\n", err)
                os.Exit(1)
            }
        
            fmt.Println(completion.Choices[0].Message.Content)
        }
        

Где:

Пример результата:

Большие языковые модели (LLM) умеют генерировать текст, отвечать на вопросы, переводить,
        резюмировать документы, писать код и многое другое. Они обучены на больших объемах текстовых
        данных и способны решать широкий спектр задач, связанных с обработкой естественного языка.
        
curl https://ai.api.cloud.yandex.net/v1/chat/completions \
          --header "Content-Type: application/json" \
          --header "Authorization: Api-Key <API-ключ>" \
          --header "OpenAI-Project: <идентификатор_каталога>" \
          --data '{
            "model": "gpt://<идентификатор_каталога>/yandexgpt/latest",
            "messages": [
              {
                "role": "system",
                "content": "Ты очень умный ассистент."
              },
              {
                "role": "user",
                "content": "Что умеют большие языковые модели?"
              }
            ],
            "max_tokens": 2000,
            "temperature": 0.3
          }'
        

Где:

Пример результата:

{
          "id": "chatcmpl-a1b2c3d4-...",
          "object": "chat.completion",
          "choices": [
            {
              "index": 0,
              "message": {
                "role": "assistant",
                "content": "Большие языковые модели (LLM) умеют генерировать текст, отвечать на вопросы, переводить, резюмировать документы, писать код и многое другое."
              },
              "finish_reason": "stop"
            }
          ],
          "model": "gpt://b1go3el0d8fs********/yandexgpt/latest"
        }
        
from yandex_ai_studio_sdk import AIStudio
        
        YANDEX_API_KEY = "<API-ключ>"
        YANDEX_FOLDER_ID = "<идентификатор_каталога>"
        YANDEX_MODEL = "yandexgpt"
        
        sdk = AIStudio(
            folder_id=YANDEX_FOLDER_ID,
            auth=YANDEX_API_KEY,
        )
        
        model = sdk.chat.completions(YANDEX_MODEL)
        model = model.configure(temperature=0.3, max_tokens=2000)
        
        result = model.run([
            {"role": "system", "text": "Ты очень умный ассистент."},
            {"role": "user", "text": "Что умеют большие языковые модели?"},
        ])
        
        print(result.text)
        

Где:

Пример результата:

Большие языковые модели (LLM) умеют генерировать текст, отвечать на вопросы, переводить,
        резюмировать документы, писать код и многое другое. Они обучены на больших объемах текстовых
        данных и способны решать широкий спектр задач, связанных с обработкой естественного языка.
        

См. также