mirror of https://github.com/xtekky/gpt4free
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
938 B
Python
47 lines
938 B
Python
9 months ago
|
|
||
|
import sys, re
|
||
|
from pathlib import Path
|
||
|
from os import path
|
||
|
|
||
|
sys.path.append(str(Path(__file__).parent.parent.parent))
|
||
|
|
||
|
import g4f
|
||
|
|
||
|
def read_code(text):
|
||
|
match = re.search(r"```(python|py|)\n(?P<code>[\S\s]+?)\n```", text)
|
||
|
if match:
|
||
|
return match.group("code")
|
||
|
|
||
|
path = input("Path: ")
|
||
|
|
||
|
with open(path, "r") as file:
|
||
|
code = file.read()
|
||
|
|
||
|
prompt = f"""
|
||
|
Improve the code in this file:
|
||
|
```py
|
||
|
{code}
|
||
|
```
|
||
9 months ago
|
Don't remove anything.
|
||
|
Add typehints if possible.
|
||
|
Don't add any typehints to kwargs.
|
||
|
Don't remove license comments.
|
||
9 months ago
|
"""
|
||
|
|
||
|
print("Create code...")
|
||
|
response = []
|
||
|
for chunk in g4f.ChatCompletion.create(
|
||
|
model=g4f.models.gpt_35_long,
|
||
|
messages=[{"role": "user", "content": prompt}],
|
||
9 months ago
|
timeout=300,
|
||
9 months ago
|
stream=True
|
||
|
):
|
||
|
response.append(chunk)
|
||
|
print(chunk, end="", flush=True)
|
||
|
print()
|
||
|
response = "".join(response)
|
||
|
|
||
|
code = read_code(response)
|
||
|
if code:
|
||
|
with open(path, "w") as file:
|
||
|
file.write(code)
|