-
Notifications
You must be signed in to change notification settings - Fork 0
/
mva.py
55 lines (42 loc) · 1.78 KB
/
mva.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import modules.github_api as github
import modules.issue as issue
import modules.openai_api as gpt
purpose = input("目的を入力してください: ")
data = input("データを入力してください: ")
script_path = input("対象スクリプトのパスを入力してください: ")
script = github.get_file_contents(script_path) if script_path else None
prompt = f"""
[命令]
[目的]を達成するためのpythonコードを作成してください。
[スクリプト]がある場合は、そのコードに対するを参考にしてください。
出力はpythonコードのみとし、説明文や結果などの説明はしないでください。
[目的]
{purpose}
[データ]
{data}
[スクリプト]
{script}
[出力の制限] # 最重要事項
[出力結果]は`exec([出力結果])`で実行されます。
この処理に適したプレーンなテキスト形式で出力してください。
マークダウンのためのコードブロックは不要です。
処理を実行した結果を返り値として返すようにしてください。
"""
gpt_response = gpt.post(prompt, temperature=0.7, json=False)
python_code = gpt.content(gpt_response)
try:
print(python_code)
if not script_path:
is_execute = input("このコードを実行しますか?(y/n): ")
if is_execute.upper() in ["Y", "YES"]:
exec_globals = {}
exec(python_code, exec_globals)
result = exec_globals.get("result", None)
print(result)
else:
print("処理を終了します。")
is_record_issue = input("このコードをGitHub Issueに記録しますか?(y/n): ")
if is_record_issue.upper() in ["Y", "YES"]:
issue.record(purpose, python_code, script_path)
except Exception as e:
issue.rescue(e)