.vscode | ||
api | ||
run | ||
tests | ||
.gitignore | ||
LICENSE | ||
README.md | ||
screen.sh | ||
setup.py |
☄️ NovaOSS API Server
Reverse proxy server for "Closed"AI's API.
"OpenAI is very closed"
We aim to fix that!
NovaOSS APIs
Our infrastructure might seem a bit confusing, but it's actually quite simple. Just the first one really matters for you, if you want to access our AI API. The other ones are just for the team.
AI API
Public (everyone can use it with a valid API key)
Official endpoints: https://api.nova-oss.com/v1/...
Documentation & info: nova-oss.com
- Access to AI models
User/Account management API
Private (NovaOSS operators only!)
Official endpoints: https://api.nova-oss.com/...
Documentation: api.nova-oss.com/docs
- Access to user accounts
- Implemented in NovaCord
Website API
Private (NovaOSS operators only!)
Official endpoints: https://nova-oss.com/api/...
This one's code can be found in the following repository: github.com/novaoss/nova-web
- Used for the Terms of Service (ToS) verification for the Discord bot.
- In a different repository and with a different domain because it needs to display codes on the website.
- Implemented in NovaCord
Install
Assuming you have a new version of Python 3 and pip installed:
python -m pip install -r requirements.txt
If you still get a ModuleNotFoundError
s, you can forefully install the dependencies using:
python -m pip install pipreqs
python -m pipreqs.pipreqs --force --mode no-pin
python -m pip install --upgrade -r requirements.txt
You can also try installing Nova API using setup.py
:
python setup.py
or
pip install .
.env
configuration
Create a .env
file, make sure not to reveal it to anyone, and fill in the required values in the format KEY=VALUE
. Otherwise, the code won't run.
Database
API_DB_PATH
the path to the databases, e.g./etc/nova/db/.
(this way, the databaseusers
would be saved in/etc/nova/db/.users.db
.)
Proxy
PROXY_TYPE
(optional, defaults tosocks.PROXY_TYPE_HTTP
): the type of proxy - can behttp
,https
,socks4
,socks5
,4
or5
, etc...PROXY_HOST
: the proxy host (host domain or IP address), without port!PROXY_PORT
(optional)PROXY_USER
(optional)PROXY_PASS
(optional)
ClosedAI configuration
CLOSEDAI_KEY
: the API key used to access the ClosedAI APICLOSEDAI_ENDPOINT
(defaults tohttps://api.openai.com/v1
): the API endpoint which is used for the provider ClosedAI
ACTUAL_IPS
(optional)
This is a security measure to make sure a proxy, VPN, Tor or any other IP hiding service is used by the host when accessing "Closed"AI's API.
It is a space separated list of IP addresses that are allowed to access the API.
You can also just add the beginning of an API address, like 12.123.
(without an asterisk!) to allow all IPs starting with 12.123.
.
To disable the warning if you don't have this feature enabled, set
ACTUAL_IPS
toNone
.
DEMO_AUTH
API key for demo purposes. You can give this to trusted team members. Never use it in production.
CORE_API_KEY
This will
Run
Warning: read the according section for production usage!
For developement:
python run
This will run the development server on port 2332
.
You can also specify a port, e.g.:
python run 1337
Test if it works
python tests
Ports
2332: Developement (default)
2333: Production
Production
Make sure your server is secure and up to date. Check everything.
The following command will run the API without a reloader!
python run prod
or
./screen.sh