A partir do sgcWebSockets 2023.3.0, a API OpenAI é totalmente suportada.
A API OpenAI pode ser aplicada a praticamente qualquer tarefa que envolva compreensão ou geração de linguagem natural, código ou imagens. A OpenAI oferece um espectro de modelos com diferentes níveis de capacidade, adequados para diferentes tarefas, além da possibilidade de ajustar seus próprios modelos personalizados. Esses modelos podem ser usados para tudo, desde geração de conteúdo até busca semântica e classificação.
Autenticação
A API OpenAI usa chaves de API para autenticação. Acesse sua página de Chaves de API para recuperar a chave que você usará nas suas requisições.
Lembre-se de que sua chave de API é secreta! Não a compartilhe com outras pessoas nem a exponha em nenhum código do lado do cliente (navegadores, aplicativos). As requisições de produção devem ser roteadas pelo seu próprio servidor de backend, onde a chave de API pode ser carregada com segurança a partir de uma variável de ambiente ou serviço de gerenciamento de chaves.Esta chave de API deve ser configurada na propriedade OpenAIOptions.ApiKey do componente. Opcionalmente, para usuários que pertencem a múltiplas organizações, você pode definir sua Organização na propriedade OpenAIOptions.Organization, caso sua conta pertença a uma organização.
Modelos OpenAI
Uma vez que a chave de API esteja configurada, veja abaixo uma lista de funções disponíveis para interagir com a API OpenAI.
ModelsListe e descreva os diversos modelos disponíveis na API.
- GetModels: Lista os modelos atualmente disponíveis e fornece informações básicas sobre cada um, como o proprietário e a disponibilidade.
- GetModel: Recupera uma instância de modelo, fornecendo informações básicas sobre o modelo, como o proprietário e as permissões.
- Model: O ID do modelo a ser usado nesta requisição
Completions
Dado um prompt, o modelo retornará uma ou mais conclusões previstas, e também pode retornar as probabilidades de tokens alternativos em cada posição.
- CreateCompletion: Cria uma conclusão para o prompt e parâmetros fornecidos.
- Model: ID do modelo a ser usado. Você pode usar a API List models para ver todos os modelos disponíveis ou consultar a visão geral dos modelos para descrições.
- Prompt: O prompt para gerar as conclusões.
Chat
Dado um histórico de conversa, o modelo retornará uma resposta de conclusão de chat.
- Model: ID do modelo a ser usado. Chame GetModels para obter uma lista de todos os modelos suportados pela API de Chat.
- Message: A mensagem para a qual gerar conclusões de chat.
- Role: por padrão user, outras opções são: system, assistant.
Edits
Dado um prompt e uma instrução, o modelo retornará uma versão editada do prompt.
- CreateEdit: Cria uma nova edição para o input, instrução e parâmetros fornecidos.
- Model: ID do modelo a ser usado. Você pode usar o modelo text-davinci-edit-001 ou code-davinci-edit-001 com este endpoint.
- Instruction: A instrução que diz ao modelo como editar o prompt.
- Input: (opcional) O texto de entrada a ser usado como ponto de partida para a edição.
Dado um prompt e/ou uma imagem de entrada, o modelo gerará uma nova imagem.
- CreateImage: Cria uma imagem a partir de um prompt.
- Prompt: Uma descrição textual da(s) imagem(ns) desejada(s). O comprimento máximo é de 1000 caracteres.
- CreateImageEdit: Cria uma imagem editada ou estendida a partir de uma imagem original e um prompt.
- Image: A imagem a ser editada. Deve ser um arquivo PNG válido, com menos de 4MB e quadrado. Se a máscara não for fornecida, a imagem deve ter transparência, que será usada como máscara.
- Prompt: Uma descrição textual da(s) imagem(ns) desejada(s). O comprimento máximo é de 1000 caracteres.
- CreateImageVariations: Cria uma variação de uma imagem fornecida.
- Image: A imagem a ser usada como base para a(s) variação(ões). Deve ser um arquivo PNG válido, com menos de 4MB e quadrado.
Embeddings
Obtém uma representação vetorial de um dado input que pode ser facilmente consumida por modelos e algoritmos de machine learning.
- CreateEmbeddings: Cria um vetor de embedding representando o texto de entrada.
- Model: ID do modelo a ser usado.
- Input: Texto de entrada para o qual obter os embeddings.
Audio
Converta áudio em texto.
- CreateTranscriptionFromFile: Transcreve áudio para o idioma de entrada a partir de um arquivo.
- Model: ID do modelo a ser usado. Atualmente apenas o whisper-1 está disponível.
- Filename: O arquivo de áudio a ser transcrito, em um dos seguintes formatos: mp3, mp4, mpeg, mpga, m4a, wav ou webm.
- CreateTranscription: Grava áudio por X segundos e o transcreve.
- Model: ID do modelo a ser usado. Atualmente apenas o whisper-1 está disponível.
- Time: tempo em milissegundos, por padrão 10 segundos.
- CreateTranslationFromFile: Traduz áudio para inglês.
- Model: ID do modelo a ser usado. Atualmente apenas o whisper-1 está disponível.
- Filename: O arquivo de áudio a ser traduzido, em um dos seguintes formatos: mp3, mp4, mpeg, mpga, m4a, wav ou webm.
- CreateTranslation: Grava áudio por X segundos e o traduz.
- Model: ID do modelo a ser usado. Atualmente apenas o whisper-1 está disponível.
- Time: tempo em milissegundos, por padrão 10 segundos.
Files
Arquivos são usados para enviar documentos que podem ser utilizados com recursos como Fine-tuning.
- ListFiles: Retorna uma lista de arquivos que pertencem à organização do usuário.
- UploadFile: Envia um arquivo que contém documento(s) a serem usados em vários endpoints/recursos. Atualmente, o tamanho total de todos os arquivos enviados por uma organização pode ser de até 1 GB.
- Filename: Nome do arquivo JSON Lines a ser enviado. Se o propósito for "fine-tune", cada linha é um registro JSON com campos "prompt" e "completion" representando seus exemplos de treinamento.
- Purpose: O propósito pretendido dos documentos enviados. Use "fine-tune" para Fine-tuning.
- DeleteFile: Exclui um arquivo.
- FileId: O ID do arquivo a ser usado nesta requisição
- RetrieveFile: Retorna informações sobre um arquivo específico.
- FileId: O ID do arquivo a ser usado nesta requisição
- RetrieveFileContent: Retorna o conteúdo do arquivo especificado.
- FileId: O ID do arquivo a ser usado nesta requisição.
Fine-Tunes
Gerencie jobs de fine-tuning para adaptar um modelo aos seus dados de treinamento específicos.
- CreateFineTune: Cria um job que ajusta um modelo especificado a partir de um conjunto de dados fornecido. A resposta inclui detalhes do job na fila, incluindo o status e o nome dos modelos ajustados após a conclusão.
- TrainingFile: O ID de um arquivo enviado que contém dados de treinamento.
- ListFineTunes: Lista os jobs de fine-tuning da sua organização.
- RetrieveFineTune: Obtém informações sobre o job de fine-tune.
- FineTuneId: O ID do job de fine-tune.
- CancelFineTune: Cancela imediatamente um job de fine-tune.
- FineTuneId: O ID do job de fine-tune.
- ListFineTuneEvents: Obtém atualizações detalhadas de status para o job de fine-tune.
- FineTuneId: O ID do job de fine-tune.
- DeleteFineTuneModel: Exclui um modelo ajustado. Você deve ter a função de Proprietário em sua organização.
- Model: O modelo a ser excluído.
Moderations
Dado um texto de entrada, informa se o modelo o classifica como violação da política de conteúdo da OpenAI.
- CreateModeration: Classifica se o texto viola a Política de Conteúdo da OpenAI.
- Input: O texto de entrada a ser classificado.
Exemplos OpenAI
Veja abaixo alguns exemplos de aplicativos desenvolvidos em Delphi usando a API OpenAI:
2. OpenAI Transcription Delphi Client
3. Translate OpenAI Delphi Client
4. Image Generator OpenAI Delphi Client
Veja abaixo um exemplo de cliente da API OpenAI desenvolvido para Windows usando a biblioteca sgcWebSockets para Delphi, que demonstra os principais métodos da API.
