Spaces:
Running
Running
seawolf2357
commited on
Update app.py
Browse files
app.py
CHANGED
@@ -5,6 +5,7 @@ from huggingface_hub import InferenceClient
|
|
5 |
import asyncio
|
6 |
import subprocess
|
7 |
from datasets import load_dataset
|
|
|
8 |
|
9 |
# 현재 작업 디렉토리 출력
|
10 |
print("Current Working Directory:", os.getcwd())
|
@@ -22,8 +23,16 @@ if missing_files:
|
|
22 |
else:
|
23 |
print("All files are present in the current directory.")
|
24 |
|
25 |
-
# 데이터셋 로드
|
26 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
print("Dataset loaded successfully.")
|
28 |
|
29 |
# 로깅 설정
|
@@ -36,7 +45,7 @@ intents.messages = True
|
|
36 |
intents.guilds = True
|
37 |
intents.guild_messages = True
|
38 |
|
39 |
-
# 추론 API 클라이언트 설정
|
40 |
hf_client = InferenceClient("CohereForAI/c4ai-command-r-plus", token=os.getenv("HF_TOKEN"))
|
41 |
|
42 |
# 특정 채널 ID
|
@@ -81,43 +90,25 @@ class MyClient(discord.Client):
|
|
81 |
|
82 |
async def generate_response(message):
|
83 |
global conversation_history
|
84 |
-
|
85 |
user_mention = message.author.mention
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
for i in range(0, len(full_response_text), max_length):
|
95 |
-
part_response = full_response_text[i:i+max_length]
|
96 |
-
await message.channel.send(part_response)
|
97 |
-
response_parts.append(part_response)
|
98 |
-
logging.debug(f'Full model response sent: {full_response_text}')
|
99 |
-
conversation_history.append({"role": "assistant", "content": full_response_text})
|
100 |
-
return "".join(response_parts) # 조각난 메시지들을 연결하여 반환
|
101 |
else:
|
102 |
-
|
103 |
-
logging.debug(f'Full model response sent: {full_response_text}')
|
104 |
-
conversation_history.append({"role": "assistant", "content": full_response_text})
|
105 |
-
return full_response_text # 전체 메시지를 반환
|
106 |
-
|
107 |
-
return "" # 반환 값이 없을 경우 빈 문자열 반환
|
108 |
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
return "관련 법률 정보를 찾을 수 없습니다."
|
114 |
-
|
115 |
-
def search_in_dataset_by_case_number(case_number, dataset):
|
116 |
-
for record in dataset['train']:
|
117 |
-
if record['사건번호'] == case_number:
|
118 |
-
return record.get('전문', "해당 사건에 대한 전문 정보가 없습니다.")
|
119 |
-
return "관련 법률 정보를 찾을 수 없습니다."
|
120 |
|
121 |
if __name__ == "__main__":
|
122 |
discord_client = MyClient(intents=intents)
|
123 |
discord_client.run(os.getenv('DISCORD_TOKEN'))
|
|
|
|
5 |
import asyncio
|
6 |
import subprocess
|
7 |
from datasets import load_dataset
|
8 |
+
import pandas as pd
|
9 |
|
10 |
# 현재 작업 디렉토리 출력
|
11 |
print("Current Working Directory:", os.getcwd())
|
|
|
23 |
else:
|
24 |
print("All files are present in the current directory.")
|
25 |
|
26 |
+
# 데이터셋 로드 및 최적화
|
27 |
+
def load_optimized_dataset(data_files):
|
28 |
+
data_frames = [pd.read_csv(file) for file in data_files]
|
29 |
+
full_data = pd.concat(data_frames, ignore_index=True)
|
30 |
+
# 사건명을 키로 하고 사건번호와 전문을 저장하는 딕셔너리 생성
|
31 |
+
name_to_number = full_data.set_index('사건명')['사건번호'].to_dict()
|
32 |
+
number_to_fulltext = full_data.set_index('사건번호')['전문'].to_dict()
|
33 |
+
return name_to_number, number_to_fulltext
|
34 |
+
|
35 |
+
name_to_number, number_to_fulltext = load_optimized_dataset(data_files)
|
36 |
print("Dataset loaded successfully.")
|
37 |
|
38 |
# 로깅 설정
|
|
|
45 |
intents.guilds = True
|
46 |
intents.guild_messages = True
|
47 |
|
48 |
+
# 추론 API 클라이언트 설정 (예시로 포함, 실제로 사용되지 않음)
|
49 |
hf_client = InferenceClient("CohereForAI/c4ai-command-r-plus", token=os.getenv("HF_TOKEN"))
|
50 |
|
51 |
# 특정 채널 ID
|
|
|
90 |
|
91 |
async def generate_response(message):
|
92 |
global conversation_history
|
93 |
+
user_input = message.content.strip()
|
94 |
user_mention = message.author.mention
|
95 |
+
|
96 |
+
# 입력이 사건명인지 사건번호인지 확인
|
97 |
+
if user_input in name_to_number:
|
98 |
+
case_number = name_to_number[user_input]
|
99 |
+
system_message = f"{user_mention}, '{user_input}' 사건의 사건번호는 다음과 같습니다:\n사건번호: {case_number}"
|
100 |
+
elif user_input in number_to_fulltext:
|
101 |
+
full_text = number_to_fulltext[user_input]
|
102 |
+
system_message = f"{user_mention}, 사건번호 '{user_input}'의 전문은 다음과 같습니다:\n\n{full_text}"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
103 |
else:
|
104 |
+
system_message = f"{user_mention}, 관련 법률 정보를 찾을 수 없습니다."
|
|
|
|
|
|
|
|
|
|
|
105 |
|
106 |
+
# 응답 보내기
|
107 |
+
await message.channel.send(system_message)
|
108 |
+
logging.debug(f'Full model response sent: {system_message}')
|
109 |
+
conversation_history.append({"role": "assistant", "content": system_message})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
110 |
|
111 |
if __name__ == "__main__":
|
112 |
discord_client = MyClient(intents=intents)
|
113 |
discord_client.run(os.getenv('DISCORD_TOKEN'))
|
114 |
+
|