O objetivo do S.A.R.A-C é produzir e manter várias "notícias" falsas usando inteligência artificial.
O S.A.R.A-C é uma extensão do projeto S.A.R.A que visa conscientizar as pessoas sobre as capacidades das inteligências artificiais modernas. Ele permite a geração automática de notícias usando modelos de IA e oferece a opção de publicá-las automaticamente no Facebook e no Instagram, enquanto ainda mantém separadamente fatos de diversas noticias gerados por ele mesmo em forma de tópicos, assim como continua esses tópicos automaticamente. O backend é desenvolvido em Laravel, enquanto o frontend utiliza React e Tailwind. O projeto é direcionado a desenvolvedores interessados em geração de texto por IA. É importante observar que o uso do S.A.R.A-C deve estar dentro dos limites legais e éticos.
O projeto consiste na criação e manutenção de noticias falsas separadas em tópicos que serão regularmente postadas no Facebook e no Instagram. O backend do projeto é desenvolvido em PHP com o framework Laravel, enquanto o frontend é construído com ReactJS.
Para conseguir fazer o programa funcionar localmente, alguns passos devem ser seguidos.
-
Clonar o repositório do GitHub em https://github.com/B00TT3R/S.A.R.A-C
-
Criar o arquivo
.ENV
, copiando o arquivo.ENV.EXAMPLE
e então renomeando para.ENV
-
No Windows PowerShell, isso pode ser feito com o seguinte comando:
cp .env.example .env
-
-
Conectar o banco de dados MySQL no arquivo
.ENV
, colocando as informações corretas nos camposDB_*
-
Configurar OpenAI
- Conectar uma chave válida do OpenAI no campo
OPENAI_KEY
- Colocar um modelo válido de geração de texto por chat em
OPENAI_TEXT_MODEL
, é recomendável que suporte as funções do ChatGPT para continuar os tópicos, ex:gpt-3.5-turbo-0613
- Colocar um modelo de geração de imagem em
OPENAI_IMAGE_MODEL
(serve apenas para controle, o texto escrito não tem uma diferença real na geração) - Definir se o sistema deve usar funções no campo
OPENAI_FUNCTIONS
, elas servem para criar novos tópicos e continuar eles com informações raiz. - Definir o máximo de tópicos por IA (padrão é 10), no campo
MAX_AI_TOPICS
, isso define a quantidade máxima de tópicos por IA; ao atingir esse máximo, o sistema continuará criando, mas apagará o mais antigo.
- Conectar uma chave válida do OpenAI no campo
-
Configurar Facebook
- Inserir um token de página válido, e sem tempo de expiração, no campo
FACEBOOK_TOKEN
; esse token deve possuir as seguintes permissões:- public_profile
- pages_manage_posts
- pages_read_user_content
- pages_manage_metadata
- pages_read_engagement
- pages_show_list
- pages_manage_instant_articles
- Inserir o ID de uma página que está dentro da aplicação do token no campo
FACEBOOK_PAGE_ID
- Inserir um token de página válido, e sem tempo de expiração, no campo
-
Configurar Instagram
- Inserir um token de usuário válido e sem tempo de expiração no campo
INSTAGRAM_USER_TOKEN
; o token deve ter as seguintes permissões:- instagram_basic
- instagram_content_publish
- pages_read_engagement
- pages_manage_metadata
- pages_read_user_content
- pages_manage_posts
- public_profile
- Inserir um ID de usuário válido no campo
INSTAGRAM_USER_ID
, pode ser obtido no Meta Business Suite.
- Inserir um token de usuário válido e sem tempo de expiração no campo
-
Gerar a chave
-
O projeto clonado não possui uma chave de aplicação (necessária para o funcionamento do Laravel), portanto, basta rodar em um terminal:
php artisan key:generate
-
-
Instalar dependências:
-
Para instalar as dependências do composer, execute:
composer install
-
Para instalar as dependências do node, execute:
npm install
-
-
Migrar bancos de dados
-
Para migrar os bancos, o Laravel conta com as migrations nativas, para gerar a estrutura, execute:
php artisan migrate:fresh
-
-
Executar
-
Para executar o servidor Laravel, abra uma instância do terminal e escreva:
php artisan serve
-
Posteriormente, para executar o servidor de desenvolvimento node, execute:
npm run dev
-
-
Executar a geração constante (opcional)
-
Esse passo serve apenas para executar a geração constante de notícias; caso isso seja desejado, execute no terminal:
php artisan schedule:work
-
Essa função serve para simular um serviço CRON no terminal, mas caso o projeto esteja na rede, é mais recomendado configurar um CRON de acordo com o sistema utilizado para executar o seguinte comando a cada minuto:
php artisan schedule:run
-
Para mais informações, consulte a documentação.