/SentiGuard-AI-OpenAI

A powerful sentiment analysis tool leveraging OpenAI GPT AI model

Primary LanguagePythonApache License 2.0Apache-2.0

πŸ›‘οΈ SentiGuard-AI OpenAI Edition

Un potente strumento di analisi del sentiment che utilizza l'API di OpenAI con supporto per la selezione del modello e il calcolo dei costi.

English | Italiano


English

πŸ“ Description

SentiGuard-AI OpenAI Edition is a Python script that performs sentiment analysis on text data using OpenAI's language models. It features model selection, cost estimation, and detailed logging of token usage and costs. This tool is suitable for large-scale sentiment analysis tasks, allowing users to choose the most appropriate model for their needs while keeping track of API usage and costs.

🌟 Features

  • 🧠 Utilizes OpenAI's advanced language models for accurate sentiment analysis
  • πŸ”’ Supports multiple OpenAI models with interactive selection
  • πŸ’° Provides cost estimation and tracking for API usage
  • πŸ”„ Handles multiple analyses with custom prompts
  • ⏱️ Respects API rate limits to ensure uninterrupted operation
  • πŸ“Š Provides real-time console output for monitoring
  • πŸ’Ύ Saves results progressively in CSV and final output in XLSX format

πŸ› οΈ Requirements

  • Python 3.7+
  • Required Python libraries (automatically installed by the script):
    pandas
    openai
    tiktoken
    openpyxl
    

πŸ”‘ API Key Required

  • OpenAI API Key
    • πŸ”— Obtain from OpenAI API Keys
    • πŸ“‹ Instructions:
      1. Log in to your OpenAI account
      2. Navigate to the API keys section
      3. Create a new secret key

⚠️ Important: Keep your API key secure. Never share it publicly or include it in version-controlled code.

πŸš€ How to Use

  1. Clone the repository:
    git clone https://github.com/yourusername/SentiGuard-AI-OpenAI.git
  2. Navigate to the project directory:
    cd SentiGuard-AI-OpenAI
  3. Run the script:
    python sentiguard_ai_openai.py
  4. Follow the on-screen prompts to:
    • Enter your OpenAI API key
    • Select the OpenAI model to use
    • Choose your input file (CSV or Excel)
    • Select the column containing the text to analyze
    • Define the analysis range
    • Specify the number of analyses and their respective prompts

πŸ“€ Output

  • Interim results are saved as {custom_filename}_intermediate.csv
  • Final results are saved as {custom_filename}_final.xlsx
  • Error logs, if any, are saved as {custom_filename}_error_log.txt

πŸ’» Code Snippet

Here's a key part of the script:

def schedule_request(client, prompt: str, tracker: dict, model: str) -> dict:
    # ... [rate limiting logic] ...

    input_tokens = count_tokens(prompt, model)
    ai_text = generate_content(client, prompt, model)
    output_tokens = count_tokens(ai_text, model)

    input_cost = calculate_cost(input_tokens, model, True)
    output_cost = calculate_cost(output_tokens, model, False)

    return {
        'ai_text': ai_text,
        'tracker': tracker,
        'input_tokens': input_tokens,
        'output_tokens': output_tokens,
        'input_cost': input_cost,
        'output_cost': output_cost,
        'time_taken': end_time - start_time
    }

This function manages API requests, token counting, and cost calculation for each analysis.


Italiano

πŸ“ Descrizione

SentiGuard-AI OpenAI Edition Γ¨ uno script Python che esegue l'analisi del sentiment su dati testuali utilizzando i modelli linguistici di OpenAI. Presenta la selezione del modello, la stima dei costi e il logging dettagliato dell'utilizzo dei token e dei costi. Questo strumento Γ¨ adatto per attivitΓ  di analisi del sentiment su larga scala, permettendo agli utenti di scegliere il modello piΓΉ appropriato per le loro esigenze tenendo traccia dell'utilizzo dell'API e dei costi.

🌟 Caratteristiche

  • 🧠 Utilizza i modelli linguistici avanzati di OpenAI per un'analisi accurata del sentiment
  • πŸ”’ Supporta molteplici modelli OpenAI con selezione interattiva
  • πŸ’° Fornisce stima dei costi e monitoraggio per l'utilizzo dell'API
  • πŸ”„ Gestisce analisi multiple con prompt personalizzati
  • ⏱️ Rispetta i limiti di velocitΓ  delle API per garantire un funzionamento ininterrotto
  • πŸ“Š Fornisce output in console in tempo reale per il monitoraggio
  • πŸ’Ύ Salva i risultati progressivamente in formato CSV e l'output finale in formato XLSX

πŸ› οΈ Requisiti

  • Python 3.7+
  • Librerie Python richieste (installate automaticamente dallo script):
    pandas
    openai
    tiktoken
    openpyxl
    

πŸ”‘ Chiave API Richiesta

  • Chiave API OpenAI
    • πŸ”— Ottenibile da OpenAI API Keys
    • πŸ“‹ Istruzioni:
      1. Accedi al tuo account OpenAI
      2. Naviga nella sezione delle chiavi API
      3. Crea una nuova chiave segreta

⚠️ Importante: Mantieni la tua chiave API sicura. Non condividerla mai pubblicamente o includerla in codice versionato.

πŸš€ Come Utilizzare

  1. Clona il repository:
    git clone https://github.com/tuousername/SentiGuard-AI-OpenAI.git
  2. Naviga nella directory del progetto:
    cd SentiGuard-AI-OpenAI
  3. Esegui lo script:
    python sentiguard_ai_openai.py
  4. Segui le istruzioni sullo schermo per:
    • Inserire la tua chiave API OpenAI
    • Selezionare il modello OpenAI da utilizzare
    • Scegliere il file di input (CSV o Excel)
    • Selezionare la colonna contenente il testo da analizzare
    • Definire l'intervallo di analisi
    • Specificare il numero di analisi e i rispettivi prompt

πŸ“€ Output

  • I risultati intermedi vengono salvati come {nome_file_personalizzato}_intermediate.csv
  • I risultati finali vengono salvati come {nome_file_personalizzato}_final.xlsx
  • I log degli errori, se presenti, vengono salvati come {nome_file_personalizzato}_error_log.txt

πŸ’» Snippet di Codice

Ecco una parte chiave dello script:

def schedule_request(client, prompt: str, tracker: dict, model: str) -> dict:
    # ... [logica di limitazione della velocitΓ ] ...

    input_tokens = count_tokens(prompt, model)
    ai_text = generate_content(client, prompt, model)
    output_tokens = count_tokens(ai_text, model)

    input_cost = calculate_cost(input_tokens, model, True)
    output_cost = calculate_cost(output_tokens, model, False)

    return {
        'ai_text': ai_text,
        'tracker': tracker,
        'input_tokens': input_tokens,
        'output_tokens': output_tokens,
        'input_cost': input_cost,
        'output_cost': output_cost,
        'time_taken': end_time - start_time
    }

Questa funzione gestisce le richieste API, il conteggio dei token e il calcolo dei costi per ogni analisi.