Quando definir informações do cliente
Defina as informações do cliente quando sua aplicação que usa o SDK representar um produto, serviço ou integração distinto cuja atividade em tempo de execução deva ser atribuída de forma consistente.
Deixe as informações do cliente não configuradas para scripts, ferramentas pontuais e trabalhos que não representam um aplicativo distinto. Em seguida, o runtime mantém sua atribuição padrão.
As informações do cliente têm quatro campos de cadeia de caracteres opcionais. Defina os campos que você conhece e omita o restante. O SDK inclui informações do server.connect cliente no handshake somente quando pelo menos um campo tem um valor não vazio.
| Campo | Example | Meaning |
|---|---|---|
applicationName | "vscode" | Nome do aplicativo usando o SDK |
application | "1.124.2" | Versão do aplicativo usando o SDK |
integrationName | "copilot-chat" | Nome da extensão, plug-in ou outra sub-parte do aplicativo usando o SDK |
integration | "0.54.0" | Versão dessa extensão, plug-in ou sub-parte do aplicativo |
Para um aplicativo autônomo sem uma integração distinta, defina apenas os campos do aplicativo. Por exemplo, um portal do desenvolvedor pode definir applicationName como "acme-developer-portal" e applicationVersion para "2.4.0", deixando ambos os campos de integração não definidos.
O SDK envia informações do cliente uma vez quando estabelece a conexão. A identidade se aplica durante toda a duração dessa conexão.
Configurar informações do cliente
Passe informações do cliente ao criar o cliente:
import { CopilotClient } from "@github/copilot-sdk";
const client = new CopilotClient({
clientInfo: {
applicationName: "vscode",
applicationVersion: "1.124.2",
integrationName: "copilot-chat",
integrationVersion: "0.54.0",
},
});
await client.start();
from copilot import CopilotClient
client = CopilotClient(
client_info={
"application_name": "vscode",
"application_version": "1.124.2",
"integration_name": "copilot-chat",
"integration_version": "0.54.0",
},
)
await client.start()
client := copilot.NewClient(&copilot.ClientOptions{
ClientInfo: &copilot.ClientInfo{
ApplicationName: "vscode",
ApplicationVersion: "1.124.2",
IntegrationName: "copilot-chat",
IntegrationVersion: "0.54.0",
},
})
if err := client.Start(ctx); err != nil {
return err
}
using GitHub.Copilot;
await using var client = new CopilotClient(new CopilotClientOptions
{
ClientInfo = new CopilotClientInfo
{
ApplicationName = "vscode",
ApplicationVersion = "1.124.2",
IntegrationName = "copilot-chat",
IntegrationVersion = "0.54.0",
},
});
await client.StartAsync();
var options = new CopilotClientOptions()
.setClientInfo(new ClientInfo()
.setApplicationName("vscode")
.setApplicationVersion("1.124.2")
.setIntegrationName("copilot-chat")
.setIntegrationVersion("0.54.0"));
var client = new CopilotClient(options);
client.start().get();
use github_copilot_sdk::{Client, ClientInfo, ClientOptions};
let client = Client::start(
ClientOptions::new().with_client_info(
ClientInfo::new()
.with_application_name("vscode")
.with_application_version("1.124.2")
.with_integration_name("copilot-chat")
.with_integration_version("0.54.0"),
),
)
.await?;
Notes
- As informações do cliente são apenas informativas. O runtime pode ignorar valores que não correspondem ao formato esperado, como uma cadeia de caracteres de versão inválida.
- Definir informações do cliente altera como o runtime atribui sua telemetria. Isso não altera o que o ambiente de tempo de execução registra.
- Se cada campo não estiver definido ou vazio, o SDK omitirá informações do cliente do handshake e o runtime manterá sua atribuição padrão.