mirror of
https://github.com/TheR1D/shell_gpt.git
synced 2026-07-03 14:10:18 +02:00
[V041] Minor optimizations
This commit is contained in:
+3
-1
@@ -1,2 +1,4 @@
|
||||
*.egg-info
|
||||
dist
|
||||
dist
|
||||
sgpt.spec
|
||||
build
|
||||
@@ -41,7 +41,7 @@ sgpt --shell --execute "make all files in current directory read only"
|
||||
# -> Execute shell command? [y/N]: y
|
||||
# ...
|
||||
```
|
||||
At this point it is already can solve half of my Google searches, but how far we can push the limits of `text-davinci-003` model? Let's try some docker containers:
|
||||
At this point it is already can solve half of most frequent Google searches, but how far we can push the limits of `text-davinci-003` model? Let's try some docker containers:
|
||||
```shell
|
||||
sgpt -se "start nginx using docker, forward 443 and 80 port, mount current folder with index.html"
|
||||
# -> docker run -d -p 443:443 -p 80:80 -v $(pwd):/usr/share/nginx/html nginx
|
||||
|
||||
@@ -2,11 +2,10 @@ from setuptools import setup, find_packages
|
||||
|
||||
setup(
|
||||
name="shell_gpt",
|
||||
version="0.4",
|
||||
version="0.4.1",
|
||||
packages=find_packages(),
|
||||
py_modules=[
|
||||
"sgpt",
|
||||
"utils"
|
||||
],
|
||||
install_requires=[
|
||||
"typer~=0.7.0",
|
||||
@@ -19,8 +18,8 @@ setup(
|
||||
],
|
||||
},
|
||||
author="Farkhod Sadykov",
|
||||
author_email="farkhod.sadykov@gmail.com",
|
||||
description="CLI App allows to query OpenAI Chat GPT models using API.",
|
||||
author_email="farkhod@sadykov.dev",
|
||||
description="CLI App allows to query OpenAI GPT-3 models using API.",
|
||||
long_description=open("README.md").read(),
|
||||
long_description_content_type="text/markdown",
|
||||
url="https://github.com/ther1d/shell_gpt",
|
||||
|
||||
@@ -1,28 +1,42 @@
|
||||
import os
|
||||
from time import sleep
|
||||
from pathlib import Path
|
||||
from getpass import getpass
|
||||
|
||||
import typer
|
||||
import requests
|
||||
from rich.progress import Progress, SpinnerColumn, TextColumn
|
||||
|
||||
from utils import loading_spinner
|
||||
|
||||
API_URL = "https://api.openai.com/v1/completions"
|
||||
|
||||
app_data_folder = os.path.expanduser('~/.config')
|
||||
api_key_file = Path(app_data_folder) / "shell-gpt" / "api_key.txt"
|
||||
DATA_FOLDER = os.path.expanduser('~/.config')
|
||||
KEY_FILE = Path(DATA_FOLDER) / "shell-gpt" / "api_key.txt"
|
||||
|
||||
|
||||
def get_api_key():
|
||||
if not api_key_file.exists():
|
||||
api_key = typer.prompt("Please enter your API secret key")
|
||||
api_key_file.parent.mkdir(parents=True, exist_ok=True)
|
||||
api_key_file.write_text(api_key)
|
||||
if not KEY_FILE.exists():
|
||||
api_key = getpass(prompt="Please enter your API secret key")
|
||||
KEY_FILE.parent.mkdir(parents=True, exist_ok=True)
|
||||
KEY_FILE.write_text(api_key)
|
||||
else:
|
||||
api_key = api_key_file.read_text()
|
||||
api_key = KEY_FILE.read_text()
|
||||
return api_key
|
||||
|
||||
|
||||
def loading_spinner(func):
|
||||
def wrapper(*args, **kwargs):
|
||||
if not kwargs.pop("spinner"):
|
||||
return func(*args, **kwargs)
|
||||
with Progress(
|
||||
SpinnerColumn(),
|
||||
TextColumn("[green]Requesting OpenAI..."),
|
||||
transient=True
|
||||
) as progress:
|
||||
progress.add_task("request")
|
||||
return func(*args, **kwargs)
|
||||
return wrapper
|
||||
|
||||
|
||||
@loading_spinner
|
||||
def openai_request(prompt, model, max_tokens, api_key):
|
||||
headers = {
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
from rich.progress import Progress, SpinnerColumn, TextColumn
|
||||
|
||||
|
||||
def loading_spinner(func):
|
||||
def wrapper(*args, **kwargs):
|
||||
if not kwargs.pop("spinner"):
|
||||
return func(*args, **kwargs)
|
||||
with Progress(
|
||||
SpinnerColumn(),
|
||||
TextColumn("[green]Requesting OpenAI..."),
|
||||
transient=True
|
||||
) as progress:
|
||||
progress.add_task("request")
|
||||
return func(*args, **kwargs)
|
||||
return wrapper
|
||||
Reference in New Issue
Block a user