kenken999 commited on
Commit
9727889
·
1 Parent(s): 7b211c7
app/Http/controller/supabase ADDED
@@ -0,0 +1 @@
 
 
1
+ Subproject commit be333ee25a1f317806883cbd559aa597c37ea742
app/Http/controller/test_folderss CHANGED
@@ -1 +1 @@
1
- Subproject commit 31ba048e1b1cded62732338ab241cc4dbb24e8fe
 
1
+ Subproject commit 8acc8512b0ff4023084f2ec7f0f61249ff3a366d
controllers/gra_03_programfromdocs/__init__.py ADDED
File without changes
controllers/gra_03_programfromdocs/lavelo.py ADDED
@@ -0,0 +1,119 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from mysite.libs.utilities import chat_with_interpreter, completion, process_file,no_process_file
3
+ from interpreter import interpreter
4
+ import mysite.interpreter.interpreter_config # インポートするだけで設定が適用されます
5
+ import duckdb
6
+ import gradio as gr
7
+ import psycopg2
8
+ from dataclasses import dataclass, field
9
+ from typing import List, Optional
10
+ from mysite.interpreter.process import no_process_file,process_file,process_nofile
11
+ #from controllers.gra_04_database.rides import test_set_lide
12
+ import requests
13
+
14
+ val = """
15
+ # 社員がプロフィールを登録・公開し、お互いに参照できるシステム
16
+
17
+ ## 機能
18
+
19
+ ## LINEのクレーム対応システムの作成
20
+ - クレームがあった用語をAPIでナレッジに登録するシステム
21
+ - APIキー agentキーをいれ
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
+ - 表示内容は、`ユーザー名`・`プロフィール`で、`プロフィール`は先頭10文字と三点リーダーを表示する。
54
+ - ユーザー名をクリックすると、そのユーザーのユーザー詳細画面へ遷移する。
55
+ - `チーム一覧へ`をクリックすると、チーム一覧画面へ遷移する。
56
+
57
+ ### ユーザー詳細画面
58
+
59
+ - 特定のユーザーの、`ユーザー名`・`所属チーム`・`プロフィール`・`タグ`が表示される。
60
+ - プロフィールの表示はマークダウンに対応させる。
61
+ - `一覧へ`リンクをクリックすると、ユーザー一覧画面へ遷移する。
62
+
63
+ ## あなたが作成するもの
64
+
65
+ バックエンドのプログラム一式を作成してください。
66
+ フロントエンドのプログラムは不要です。
67
+
68
+ - `/api`ディレクトリ以下に作成。
69
+ - Python/FastAPI/SQLAlchemyを使う。
70
+ - DBはSQLiteを使う。
71
+ - 必要に応じて外部ライブラリを使う。
72
+ - クラウドや外部サービス(外部API)は使わない。
73
+ - .gitignoreを含めること。
74
+ - バックエンド
75
+ @app.post("
76
+ def lumbda_function():
77
+
78
+ gradio_interface でメイン関数から読み込めるようにして
79
+
80
+ googleappsscript
81
+ ラインの画像検索システム
82
+
83
+ ファイルは1ファイルで作成して。
84
+ 1ファイル1機能で難しくしたくない
85
+
86
+ 1,lineからデータがくる
87
+ 2,doPostで取得
88
+ 3.typeがイメージの場合はドライブに保存
89
+ 4,保存したデータをS3にアップロード
90
+ 5.データはシークレットから取得
91
+ 6,plantumlでフローの作成
92
+ 7,システムドキュメントの作成
93
+
94
+ gradio は gradio_interface というBlock名で作成
95
+ fastapiはrouter の作成
96
+
97
+ """
98
+
99
+ def send_to_google_chat(message: str):
100
+ webhook_url = 'https://chat.googleapis.com/v1/spaces/AAAANwDF_KE/messages?key=AIzaSyDdI0hCZtE6vySjMm-WEfRq3CPzqKqqsHI&token=qSigSPSbTINJITgO30iGKnyeY48emcUJd9LST7FBLLY'
101
+ headers = {'Content-Type': 'application/json; charset=UTF-8'}
102
+ data = {'text': message}
103
+ response = requests.post(webhook_url, headers=headers, json=data)
104
+ response.raise_for_status()
105
+
106
+ def process_file_and_notify(*args, **kwargs):
107
+ result = process_nofile(*args, **kwargs)
108
+ send_to_google_chat(result)
109
+ return result
110
+
111
+ gradio_interface = gr.Interface(
112
+ fn=process_file_and_notify,
113
+ inputs=[
114
+ gr.Textbox(label="Additional Notes", lines=10,value=val),
115
+ gr.Textbox(label="Folder Name",value="test_folders"),
116
+ gr.Textbox(label="github token",value="***********************"),
117
+ ],
118
+ outputs="text",
119
+ )
mysite/interpreter/process.py CHANGED
@@ -267,6 +267,50 @@ def no_process_file(prompt, foldername,thread_name=None):
267
  print(f"Processed Content:false ")
268
  return f"Processed Content:error"# {str(e)}"#\n{e.stdout}\n\nMake Command Error:\n{e.stderr}"
269
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
270
 
271
 
272
  def process_file(fileobj, prompt, foldername,token=None):
 
267
  print(f"Processed Content:false ")
268
  return f"Processed Content:error"# {str(e)}"#\n{e.stdout}\n\nMake Command Error:\n{e.stderr}"
269
 
270
+ def process_nofile(prompt, foldername, token=None):
271
+ set_environment_variables()
272
+ try:
273
+ os.makedirs(f"{BASE_PATH}{foldername}", exist_ok=True)
274
+ except Exception as e:
275
+ return f"Error creating directory: {str(e)}"
276
+
277
+ time.sleep(1)
278
+
279
+ # promptファイルの作成
280
+ prompt_file_path = f"{BASE_PATH}{foldername}/prompt"
281
+ try:
282
+ with open(prompt_file_path, "w") as prompt_file:
283
+ prompt_file.write(prompt)
284
+ except Exception as e:
285
+ return f"Error writing prompt to file: {str(e)}"
286
+
287
+ time.sleep(1)
288
+
289
+ # foldernameの登録
290
+ test_set_lide(prompt, foldername)
291
+
292
+ try:
293
+ proc = subprocess.Popen(
294
+ ["make", "run", foldername],
295
+ stdin=subprocess.PIPE,
296
+ stdout=subprocess.PIPE,
297
+ stderr=subprocess.PIPE,
298
+ text=True,
299
+ )
300
+ stdout, stderr = proc.communicate(input="n\ny\ny\n")
301
+
302
+ token = os.getenv("github_token")
303
+ try:
304
+ url = github(token, foldername)
305
+ except Exception as e:
306
+ log_error(e)
307
+ url = "Error creating GitHub repo"
308
+
309
+ test_set_lide(prompt, url)
310
+
311
+ return f"Processed open github url: {url}\nContent:\n{stdout}\n\nMake Command Output:\n{stdout}\n\nMake Command Error:\n{stderr}"
312
+ except subprocess.CalledProcessError as e:
313
+ return f"Processed url: {url}\nMake Command Error:\n{e.stderr}"
314
 
315
 
316
  def process_file(fileobj, prompt, foldername,token=None):