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):
|