A-Mizuguchi commited on
Commit
d550597
·
1 Parent(s): 60d9df1

Implement initial project structure and setup

Browse files
Files changed (5) hide show
  1. .gitignore +3 -0
  2. all_top_10_data.csv +0 -0
  3. app.py +85 -0
  4. appointment.relation.csv +104 -0
  5. requirements.txt +7 -0
.gitignore ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ .venv/
2
+ *.un~
3
+ .env
all_top_10_data.csv ADDED
The diff for this file is too large to render. See raw diff
 
app.py ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ import gradio as gr
3
+ import pandas as pd
4
+ from openai import OpenAI
5
+ from loguru import logger
6
+ import os
7
+ from dotenv import load_dotenv
8
+
9
+ # コードネーム:カレラ
10
+
11
+ # 環境変数の読み込み
12
+ load_dotenv()
13
+
14
+ # OpenAI クライアント初期化
15
+ try:
16
+ client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
17
+ logger.success("OpenAI クライアントの初期化に成功しました")
18
+ except Exception as e:
19
+ logger.error(f"OpenAI クライアントの初期化に失敗しました: {e}")
20
+ client = None
21
+
22
+ # 回答生成関数( account_relation_output を list で受け取る)
23
+ def panamera_answer(query, account_relation_output):
24
+ if not client:
25
+ return "OpenAI クライアントが初期化されていません。"
26
+
27
+ try:
28
+ # 入力データの整形(list → DataFrame)
29
+
30
+ account_relation_df = pd.DataFrame(account_relation_output) # ← list形式に対応
31
+
32
+
33
+
34
+ # アカウント関連情報の整形
35
+ account_text = account_relation_df.astype(str).agg(' '.join, axis=1).tolist()
36
+ account_text_combined = "\n".join(account_text)
37
+
38
+ # プロンプト生成
39
+ prompt = f"""
40
+ あなたは優秀な営業アシスタントです。
41
+ 以下は、過去に検索された訪問情報です。
42
+ この情報をもとに、ユーザーの新しい質問「{query}」に答えてください。
43
+
44
+
45
+
46
+ 【アカウント関連情報】
47
+ {account_text_combined}
48
+ """
49
+
50
+ # OpenAI による回答生成
51
+ response = client.chat.completions.create(
52
+ model="gpt-4",
53
+ messages=[
54
+ {"role": "system", "content": "あなたは優秀な営業アシスタントです。"},
55
+ {"role": "user", "content": prompt}
56
+ ],
57
+ temperature=0.7
58
+ )
59
+ answer = response.choices[0].message.content
60
+ return answer
61
+
62
+ except Exception as e:
63
+ logger.error(f"回答生成に失敗しました: {e}")
64
+ return "回答生成に失敗しました。"
65
+
66
+ # Gradio UI
67
+ with gr.Blocks(title="カレラ") as demo:
68
+ gr.Markdown("## 🧠 カレラ:訪問情報に基づくAI回答ツール")
69
+
70
+ with gr.Row():
71
+ query_input = gr.Textbox(label="ユーザークエリ", placeholder="例: この訪問の日付は?")
72
+ account_relation_output = gr.Textbox(label="アカウント関連情報(list形式)", lines=10) # ← list形式に変更
73
+
74
+ answer_output = gr.Textbox(label="AIによる回答", lines=10)
75
+ answer_btn = gr.Button("回答生成", variant="primary")
76
+
77
+ answer_btn.click(
78
+ fn=panamera_answer,
79
+ inputs=[query_input, account_relation_output],
80
+ outputs=[answer_output]
81
+ )
82
+
83
+ # MCPサーバとして起動
84
+ if __name__ == "__main__":
85
+ demo.launch(mcp_server=True)
appointment.relation.csv ADDED
@@ -0,0 +1,104 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ new_visitstart,description,new_kekkagaiyou,Subject,new_opportunity
2
+ 2025/7/1,,,,48b6ede06c
3
+ 2025/7/1,,,,c524fd19d7
4
+ 2025/7/1,,,,ed189b1488
5
+ 2025/7/1,,,,f21eed10ab
6
+ 2025/7/1,,,,
7
+ 2025/7/2,,,,5bf189a920
8
+ 2025/7/2,,,,ed189b1488
9
+ 2025/7/3,,,,48b6ede06c
10
+ 2025/7/3,,,,5bf189a920
11
+ 2025/7/4,,,,5bf189a920
12
+ 2025/7/4,�h�����C�����݂̌v����e�Ɣr�������̌���ۑ���m�F,AA�����Ԃ̐��Y�\�͑����ɔ����A�����h�����C���̔r�������\�͂����E�ɒB���錩���݂ł��邱�Ƃ������B�‹�������A�r����̌��i���ɑΉ�����K�v������Ƃ̎w�E����B����̏��������ł͑Ή�����ł��邽�߁A�V�K�ݔ������̉”\���������Ɣ��f�B�S���҂��A����̒�Ă����}����p�����m�F�B,����K��E�Č��q�A�����O,a3f1922b50
13
+ 2025/7/4,,,,c524fd19d7
14
+ 2025/7/4,,,,ed189b1488
15
+ 2025/7/4,,,,f21eed10ab
16
+ 2025/7/5,,,,159e2ee610
17
+ 2025/7/5,,,,2bae27047d
18
+ 2025/7/6,,,,159e2ee610
19
+ 2025/7/6,,,,ed189b1488
20
+ 2025/7/6,,,,f21eed10ab
21
+ 2025/7/6,,,,f21eed10ab
22
+ 2025/7/7,,,,159e2ee610
23
+ 2025/7/7,,,,2bae27047d
24
+ 2025/7/7,,,,2bae27047d
25
+ 2025/7/7,���������̑I��āi�ÏW���a�{�������j���,�ÏW���a�ɂ��O������UF���ɂ�鍂�x������g�ݍ��킹����Ă����{�B�������̍ė��p�”\����A�r��������肵�ăN���A�ł���_�������B�Z�p���傩��́u�������������A�����ɒl����v�Ƃ̕]���𓾂�B����A�����\�͂�ݒu�X�y�[�X�Ɋւ����̓I�Ȍ�����i�߂邱�ƂƂȂ����B,�Z�p��āi�ꎟ�j,a3f1922b50
26
+ 2025/7/8,,,,48b6ede06c
27
+ 2025/7/8,,,,5bf189a920
28
+ 2025/7/8,,,,ed189b1488
29
+ 2025/7/8,,,,f21eed10ab
30
+ 2025/7/8,,,,
31
+ 2025/7/9,,,,159e2ee610
32
+ 2025/7/9,,,,5bf189a920
33
+ 2025/7/9,���n�m�F�Ɗ����ݔ��Ƃ̐ڑ��”\���𒲍�,���n�H��ɂĊ����r�������ݔ��̔z�u�Ɣz�ǃ��[�g���m�F�B�V�ݑ��u�̐ݒu�X�y�[�X�͌����Ă��邪�A�����ݔ��Ƃ̐ڑ��͋Z�p�I�ɉ”\�Ɣ��f�B�r���̗��ʕϓ����傫�����߁A�����\�͂ɗ]�T����������K�v������Ƃ̎w�E����B����S���҂Ƃ̘A�g���ǍD�ŁA����̐݌v�Ɍ����������W���i�W�B,�����\�́E�ݒu�X�y�[�X�m�F,a3f1922b50
34
+ 2025/7/10,���������z�ƃ����j���O�R�X�g�̊T�Z���,�����\��200?/����z�肵���T�Z���ς�񎦁B���������z�͗\�Z���Ɏ��܂錩���݂ŁA�����j���O�R�X�g�������ݔ����ጸ�”\�Ɛ����B�w�����傩��́u�R�X�g�ʂ͑Ó������A�Г��g�c�ɂ͏ڍ׎������K�v�v�Ƃ̃R�����g����B����͎d�l���ƂƂ��ɏC�����ς��o������j�ō��ӁB,�T�Z���ϒ�,a3f1922b50
35
+ 2025/7/10,,,,c524fd19d7
36
+ 2025/7/11,,,,2bae27047d
37
+ 2025/7/11,,,,f21eed10ab
38
+ 2025/7/12,,,,159e2ee610
39
+ 2025/7/12,,,,2bae27047d
40
+ 2025/7/12,,,,c524fd19d7
41
+ 2025/7/12,,,,c524fd19d7
42
+ 2025/7/12,,,,f21eed10ab
43
+ 2025/7/13,�����\�́A��������A�����e�i���X���Ȃǂ̏ڍ׎d�l���l�߂�,�Z�p����Ƃ̑ł����킹�ɂāA�����\�͂̒������A���u�Ď��@�\�A��i�����̎������ȂǁA��̓I�Ȏd�l�v�]�𑽐���́B���Ƀ����e�i���X���ƈ��S���Ɋւ���v���������A�݌v�ɔ��f����K�v����B�������A�ߋ�����������Љ�A�M�����̍������A�s�[���B����A�C���d�l���ƌ��ς��o�\��B,�ڍ׎d�l�ł����킹,a3f1922b50
44
+ 2025/7/13,,,,ed189b1488
45
+ 2025/7/14,,,,159e2ee610
46
+ 2025/7/14,,,,c524fd19d7
47
+ 2025/7/15,,,,2bae27047d
48
+ 2025/7/15,,,,43228b23c3
49
+ 2025/7/15,,,,c524fd19d7
50
+ 2025/7/17,,,,43228b23c3
51
+ 2025/7/17,,,,43228b23c3
52
+ 2025/7/17,,,,43228b23c3
53
+ 2025/7/17,,,,5bf189a920
54
+ 2025/7/17,�C����̌��Ϗ��Ǝd�l�����o,�Z�p����̗v�]�𔽉f�����d�l���ƁA��i�g�p�ʂ�d�͏�����œK�������C�����ς��o�B�w�����傩��́u���ЂƂ̔�r�������~�����v�Ƃ̗v�]����B�Г��g�c�͋Z�p����ŏ��F�ς݁A�w������ł̌������i�s���B����͑��В�ĂƂ̔�r���������Q���邱�ƂɁB,�C�����ρE�d�l����o,a3f1922b50
55
+ 2025/7/17,,,,f21eed10ab
56
+ 2025/7/18,,,,48b6ede06c
57
+ 2025/7/18,�Г����F�v���Z�X�̐i���m�F,�Z�p���傩��͐������F�𓾂Ă���A�w������ł̓R�X�g�Ɣ[���̔�r�������i�s���B����2�Ђ������Ă��o�Ă��邪�A���������ƕێ�Ή��œ��ЈĂ��D�ʂƂ̕]������B�w�����咷���u�ŏI���f�͗��T���ɍs���\��v�Ƃ̏��𓾂�B,�g�c�󋵊m�F,a3f1922b50
58
+ 2025/7/18,���В�ĂƂ̔�r�������o���A�D�ʐ������,����A�ЁEB�ЂƂ̔�r������񎦁B���������A�ݒu�ʐρA�ێ�_����e�A�������тȂǂ��ʓI�ɔ�r�BAA�����ԑ�����́u���ЈĂ��ł��o�����X���ǂ��A������̉^�p�����S�ł���v�Ƃ̕]���𓾂�B�w�����咷���u�Г��ŏI�g�c�ɐi�߂�v�Ƃ̃R�����g����B,���Д�r�Ή�,a3f1922b50
59
+ 2025/7/19,,,,43228b23c3
60
+ 2025/7/19,,,,43228b23c3
61
+ 2025/7/19,,,,5bf189a920
62
+ 2025/7/19,�_������i�[���A�ۏ؁A�ێ�_��j�ɂ‚��Ē���,�[����2026�N2�����A�ۏ؊��Ԃ�3�N�A�ێ�_��͔N���_���{�ً}�Ή����܂ޓ��e�ō��ӁB���i�ʂł͎኱�̒������s���A�ŏI���ς�񎦁BAA�����ԑ�����́u�����ʂ͖��Ȃ��A�Г��ŏI���F��҂‚̂݁v�Ƃ̉񓚁B,�ŏI����,a3f1922b50
63
+ 2025/7/19,,,,c524fd19d7
64
+ 2025/7/19,,,,c524fd19d7
65
+ 2025/7/20,,,,43228b23c3
66
+ 2025/7/20,,,,5bf189a920
67
+ 2025/7/20,,,,5bf189a920
68
+ 2025/7/20,,,,ed189b1488
69
+ 2025/7/21,,,,2bae27047d
70
+ 2025/7/21,,,,c524fd19d7
71
+ 2025/7/23,,,,43228b23c3
72
+ 2025/7/23,,,,7bc6f6569c
73
+ 2025/7/24,,,,159e2ee610
74
+ 2025/7/24,,,,2bae27047d
75
+ 2025/7/24,,,,5bf189a920
76
+ 2025/7/24,,,,5bf189a920
77
+ 2025/7/25,,,,43228b23c3
78
+ 2025/7/25,,,,5bf189a920
79
+ 2025/7/25,,,,c524fd19d7
80
+ 2025/7/25,,,,ed189b1488
81
+ 2025/7/25,,,,f21eed10ab
82
+ 2025/7/25,,,,
83
+ 2025/7/26,,,,43228b23c3
84
+ 2025/7/26,,,,48b6ede06c
85
+ 2025/7/26,,,,7bc6f6569c
86
+ 2025/7/26,,,,7bc6f6569c
87
+ 2025/7/26,,,,ed189b1488
88
+ 2025/7/26,,,,ed189b1488
89
+ 2025/7/26,,,,f21eed10ab
90
+ 2025/7/27,,,,2bae27047d
91
+ 2025/7/27,,,,2bae27047d
92
+ 2025/7/27,,,,c524fd19d7
93
+ 2025/7/27,,,,c524fd19d7
94
+ 2025/7/28,,,,5bf189a920
95
+ 2025/7/28,�_�񏑈Ă̓��e�m�F�ƍŏI���^����,�_�񏑈Ăɑ΂���@������̊m�F���������A���e�ɖ��Ȃ��Ƃ̉񓚂𓾂�B�Z�p����E�w������E�@������̎O�҂���ŏI���F������A�_������Ɍ����������������B,�_��O�ŏI�m�F,a3f1922b50
96
+ 2025/7/28,,,,c524fd19d7
97
+ 2025/7/28,�ڋq�ۑ�̃q�A�����O,,,ed189b1488
98
+ 2025/7/28,,,,ed189b1488
99
+ 2025/7/28,,,,ed189b1488
100
+ 2025/7/29,,,,43228b23c3
101
+ 2025/7/30,,,,2bae27047d
102
+ 2025/7/30,�_�񏑂ɏ����E�������{,AA�����Ԗ{�ЂɂĐ����_�������B�_����z�A�[���A�ێ�_����e���ׂč��Ӎς݁B�[����2026�N2���\��B����͐݌v�ڍׂ̋l�߂Ɛ���H���Ɉڍs�B�����̔S�苭���c�Ɗ������]������A�����r�������Č��ł�����������”\������B,�_�����,a3f1922b50
103
+ 2025/7/30,,,,f21eed10ab
104
+ 2025/7/31,,,,7bc6f6569c
requirements.txt ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ gradio[mcp]
2
+ numpy
3
+ pandas
4
+ loguru
5
+ openai
6
+ scikit-learn
7
+ supabase