update
Browse files
app/Http/controller/supabase
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
Subproject commit be333ee25a1f317806883cbd559aa597c37ea742
|
app/Http/controller/test_folderss
CHANGED
@@ -1 +1 @@
|
|
1 |
-
Subproject commit
|
|
|
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):
|