Formação
Módulo
Gerar texto e conversas com .NET e Azure OpenAI Completions - Training
Saiba como usar o SDK do .NET com o serviço Azure OpenAI para que seus aplicativos continuem conversando com os usuários em linguagem natural.
Este browser já não é suportado.
Atualize para o Microsoft Edge para tirar partido das mais recentes funcionalidades, atualizações de segurança e de suporte técnico.
Importante
System.CommandLine
está atualmente em PREVIEW, e esta documentação é para a versão 2.0 beta 4.
Algumas informações estão relacionadas ao produto de pré-lançamento que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Os aplicativos que usam System.CommandLine
têm suporte interno para conclusão de guias em determinados shells. Para habilitá-lo, o usuário final precisa executar algumas etapas uma vez por shell. Depois que o usuário fizer isso, o preenchimento da guia será automático para valores estáticos em seu aplicativo, como valores de enum ou valores que você define chamando FromAmong. Você também pode personalizar o preenchimento da guia obtendo valores dinamicamente no tempo de execução.
Na máquina em que você deseja habilitar o preenchimento de guias, execute as etapas a seguir.
Para a CLI do .NET:
Para outras aplicações de linha de comandos baseadas em System.CommandLine
:
Instale a dotnet-suggest
ferramenta global.
Adicione o script de shim apropriado ao seu perfil de shell. Talvez seja necessário criar um arquivo de perfil do shell. O script shim encaminha solicitações de conclusão do shell para a dotnet-suggest
ferramenta, que delega ao System.CommandLine
aplicativo baseado apropriado.
Para bash
, adicione o conteúdo de dotnet-suggest-shim.bash a ~/.bash_profile.
Para zsh
, adicione o conteúdo de dotnet-suggest-shim.zsh a ~/.zshrc.
Para o PowerShell, adicione o conteúdo de dotnet-suggest-shim.ps1 ao seu perfil do PowerShell. Você pode encontrar o caminho esperado para seu perfil do PowerShell executando o seguinte comando no console:
echo $profile
Depois que o shell do usuário estiver configurado, as finalizações funcionarão para todos os aplicativos criados usando System.CommandLine
o .
Para cmd.exe no Windows (o Prompt de Comando do Windows) não há nenhum mecanismo de conclusão de guia conectável, portanto, nenhum script de correção está disponível. Para outros shells, procure um problema do GitHub rotulado como Area-Completions
. Se não encontrar um problema, pode abrir um novo.
O código a seguir mostra um aplicativo que obtém valores para conclusão de guia dinamicamente no tempo de execução. O código obtém uma lista das próximas duas semanas de datas após a data atual. A lista é fornecida à opção ligando para --date
AddCompletions
:
using System.CommandLine;
using System.CommandLine.Completions;
using System.CommandLine.Parsing;
await new DateCommand().InvokeAsync(args);
class DateCommand : Command
{
private Argument<string> subjectArgument =
new ("subject", "The subject of the appointment.");
private Option<DateTime> dateOption =
new ("--date", "The day of week to schedule. Should be within one week.");
public DateCommand() : base("schedule", "Makes an appointment for sometime in the next week.")
{
this.AddArgument(subjectArgument);
this.AddOption(dateOption);
dateOption.AddCompletions((ctx) => {
var today = System.DateTime.Today;
var dates = new List<CompletionItem>();
foreach (var i in Enumerable.Range(1, 7))
{
var date = today.AddDays(i);
dates.Add(new CompletionItem(
label: date.ToShortDateString(),
sortText: $"{i:2}"));
}
return dates;
});
this.SetHandler((subject, date) =>
{
Console.WriteLine($"Scheduled \"{subject}\" for {date}");
},
subjectArgument, dateOption);
}
}
Os valores mostrados quando a tecla tab é pressionada são fornecidos como CompletionItem
instâncias:
dates.Add(new CompletionItem(
label: date.ToShortDateString(),
sortText: $"{i:2}"));
As seguintes CompletionItem
propriedades são definidas:
Label
é o valor de conclusão a ser mostrado.SortText
garante que os valores na lista são apresentados na ordem correta. Ele é definido convertendo i
em uma cadeia de caracteres de dois dígitos, de modo que a classificação seja baseada em 01, 02, 03 e assim por diante, até 14. Se você não definir esse parâmetro, a Label
classificação será baseada no , que neste exemplo está no formato de data abreviada e não será classificado corretamente.Existem outras CompletionItem
propriedades, como Documentation
e Detail
, mas ainda não são usadas no System.CommandLine
.
A lista de conclusão de tabulação dinâmica criada por esse código também aparece na saída da ajuda:
Description:
Makes an appointment for sometime in the next week.
Usage:
schedule <subject> [options]
Arguments:
<subject> The subject of the appointment.
Options:
--date The day of week to schedule. Should be within one week.
<2/4/2022|2/5/2022|2/6/2022|2/7/2022|2/8/2022|2/9/2022|2/10/2022>
--version Show version information
-?, -h, --help
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários:
Formação
Módulo
Gerar texto e conversas com .NET e Azure OpenAI Completions - Training
Saiba como usar o SDK do .NET com o serviço Azure OpenAI para que seus aplicativos continuem conversando com os usuários em linguagem natural.