Giter Club home page Giter Club logo

ai-api's Introduction

AI API : Gerando texto com o modelo Gemini

Esta API Node.js usa o modelo Gemini do Google Cloud para gerar texto baseado em prompts, oferecendo personalização e controle sobre o processo de geração.

Funcionalidades:

  • Geração de texto: Permite gerar texto com base em um prompt fornecido pelo usuário.
  • Personalização da geração: Permite ajustar a criatividade, variedade e tamanho do texto usando a configuração generationConfig.
  • Logs com Winston: Implementa logs coloridos e personalizados com o Winston, similar ao estilo do NestJS, proporcionando informações detalhadas sobre a execução da API.
  • Documentação do Swagger: Fornece documentação interativa da API usando o Swagger, facilitando a compreensão e o uso da API.

Requisitos:

  • Node.js (versão 16 ou superior)
  • npm (ou yarn)
  • Uma conta no Google Cloud
  • Uma chave da API do Google Cloud para o serviço "Generative Language"

Configuração:

  1. Criar uma conta no Google Cloud: Acesse o site do Google Cloud e crie uma conta gratuita.
  2. Criar um projeto no Google Cloud: Acesse o Google Cloud Console e crie um novo projeto.
  3. Habilitar o serviço "Generative Language": No console do projeto, habilite o serviço "Generative Language".
  4. Criar uma chave da API: No console do projeto, acesse a seção "APIs e serviços" -> "Credenciais" e crie uma chave da API com as permissões necessárias para usar o modelo Gemini.
  5. Configurar o arquivo .env: Crie um arquivo .env na raiz do projeto e adicione a seguinte linha, substituindo sua_chave_api pela sua chave da API real:
    API_KEY=sua_chave_api
    
  6. Instalar as dependências: Execute o seguinte comando no terminal:
    npm install

Início:

  1. Executar o servidor: Execute o seguinte comando no terminal:
    npm run start:dev
  2. Acessar a API: A API estará disponível em http://localhost:3000/.
  3. Acessar a documentação do Swagger: Acesse http://localhost:3000/api-docs para visualizar a documentação da API.

Uso:

Para usar a API, faça uma requisição POST para /generate com o seguinte corpo JSON:

{
  "prompt": "Escreva um conto sobre um gato que viaja no tempo."
}

Exemplo de requisição curl:

curl -X 'POST' \
  'http://localhost:3000/generate' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "prompt": "Escreva um conto sobre um gato que viaja no tempo."
}'

Personalização da Geração:

A API permite personalizar a geração de texto usando a configuração generationConfig, que controla diversos parâmetros:

  • temperature: Controla a criatividade do modelo.

    • Valores mais altos (próximos a 1): Resultam em texto mais criativo e imprevisível, com maior probabilidade de frases inusitadas e ideias originais.
    • Valores mais baixos (próximos a 0): Resultam em texto mais previsível e semelhante ao prompt, com menos chance de frases surpreendentes.
  • topP e topK: Controlam a variedade de palavras. Ambos os parâmetros funcionam de forma semelhante, mas com nuances:

    • topP seleciona um conjunto de palavras com uma determinada probabilidade cumulativa. Valores mais altos permitem uma variedade maior de palavras, incluindo palavras menos frequentes.
    • topK seleciona as K palavras com maior probabilidade. Valores mais altos também permitem uma variedade maior de palavras.
  • maxOutputTokens: Define o tamanho máximo do texto gerado em tokens.

    • Um token corresponde aproximadamente a uma palavra: Um texto com 100 tokens terá cerca de 100 palavras.
    • Aumente esse valor para gerar textos mais longos.
  • responseMimeType: Define o tipo de resposta.

    • "text/plain" gera texto puro, sem formatação adicional.
    • "text/html" gera texto com formatação HTML.
    • "text/markdown" gera texto com formatação Markdown.

Exemplo de requisição curl com personalização:

curl -X 'POST' \
  'http://localhost:3000/generate' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "prompt": "Escreva um conto sobre um gato que viaja no tempo.",
  "temperature": 0.5,
  "topP": 0.8,
  "maxOutputTokens": 200,
  "responseMimeType": "text/markdown"
}'

Resposta:

A API retornará uma resposta JSON com o texto gerado pelo modelo Gemini.

Logs:

Os logs da API serão gravados no console e em um arquivo chamado logs/combined.log.

Contribuições:

Contribuições são bem-vindas! Você pode abrir uma issue ou enviar um pull request no GitHub.

Licença:

Este projeto é licenciado sob a licença MIT.

ai-api's People

Contributors

caiuzu avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.