Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"extends": "next/core-web-vitals"
}
206 changes: 204 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,206 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# Environments
.env
env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# dependencies
/node_modules
/.pnp
.pnp.js

# testing
/coverage

# production
/build

# next.js
/.next/
/out/

# misc
.DS_Store
nodemodules
*.pem
.env.local
.env.development.local
.env.test.local
.env.production.local
.history/

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# local env files
.env*.local

# vercel
.vercel

# typescript
*.tsbuildinfo
next-env.d.ts

# twitter data files
model/data/*
!model/data/banger_accounts.csv

# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
.pybuilder/
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock

# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock

# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#pdm.lock
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
# in version control.
# https://pdm.fming.dev/#use-with-ide
.pdm.toml

# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# pytype static type analyzer
.pytype/

# Cython debug symbols
cython_debug/

# PyCharm
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
25 changes: 11 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,49 +1,46 @@
# Text-to-banger

A simple API converting a user's proposed tweet into a veritable banger.

## To run the app locally

### Clone the repo

```
gh repo clone effectiveaccelerationism/text-to-banger
```

### Install and run the app

```
cd webapp
npm install
npm start
npm run dev
```

The app will be running on http://localhost:3000

### Run the OpenAI api server
Currently the app runs with an OpenAI API server, soon to be dismissed in favor of a custom finetuned model. To run the OpenAI API server, you need to have an OpenAI API key. You can get one [here](https://platform.openai.com/account/api-keys). Once you have your API key, create a file named `.env` in the `apiserver` directory and add the following line to it:

Currently the app runs with an OpenAI API server, soon to be dismissed in favor of a custom finetuned model. To run the OpenAI API server, you need to have an OpenAI API key. You can get one [here](https://platform.openai.com/account/api-keys). Once you have your API key, rename the file named `.env.example` to `.env` and add your API key to the file like so:

```
OPENAI_API_KEY=your-openai-key
```
Then, run the server with
```
cd api
python -m venv env
pip install -r requirements.txt
source env/bin/activate # on Windows use `env\Scripts\activate`
python server.py
```

NOTE: You must have both the webapp and the apiserver running in two separate terminal instances to use the app.

## Model TODOs

- [x] Get down a list of banger accounts
- [x] Script getting the last 100 text tweets from the account in the banger accounts list
- [x] Script filtering the tweets by a set likes/followers ratio
- [x] Script augmenting data rewriting the bangers in 10 boring ways through the OAI API
- [ ] Fine-tuning script taking as input the boring bangers and outputting the bangers

## API TODOs

- [x] Create OAI API server
- [ ] Add Custom API server with finetuned model

## WebApp TODOs

- [x] Add dark mode and set it as default
- [ ] Get BANGER OAI API prompt
- [ ] Deploy webapp
1 change: 0 additions & 1 deletion api/.env.example

This file was deleted.

2 changes: 0 additions & 2 deletions api/requirements.txt

This file was deleted.

88 changes: 0 additions & 88 deletions api/server.py

This file was deleted.

Loading