seawolf2357 commited on
Commit
c4be42e
·
verified ·
1 Parent(s): 13feae4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -20
app.py CHANGED
@@ -10,19 +10,20 @@ from datasets import load_dataset
10
  print("Current Working Directory:", os.getcwd())
11
 
12
  # 데이터셋 파일 이름
13
- data_file = 'train_0.csv'
14
 
15
- # 현재 작업 디렉토리에 파일이 있는지 확인
16
- if os.path.exists(data_file):
17
- print(f"File {data_file} exists in the current directory.")
18
- else:
19
- print(f"File {data_file} does not exist in the current directory.")
20
- # 작업 디렉토리 변경 (필요한 경우)
21
  os.chdir('/home/user/app')
22
  print("Changed directory to:", os.getcwd())
 
 
23
 
24
  # 데이터셋 로드
25
- law_dataset = load_dataset('csv', data_files=data_file)
26
  print("Dataset loaded successfully.")
27
 
28
  # 로깅 설정
@@ -44,9 +45,6 @@ SPECIFIC_CHANNEL_ID = int(os.getenv("DISCORD_CHANNEL_ID"))
44
  # 대화 히스토리를 저장할 전역 변수
45
  conversation_history = []
46
 
47
- # 법률 데이터셋 로드
48
- law_dataset = load_dataset('csv', data_files='train_0.csv')
49
-
50
  class MyClient(discord.Client):
51
  def __init__(self, *args, **kwargs):
52
  super().__init__(*args, **kwargs)
@@ -68,14 +66,12 @@ class MyClient(discord.Client):
68
  self.is_processing = True
69
  try:
70
  response = await generate_response(message)
71
- # 비어 있는 응답을 확인하고 처리
72
  if response.strip() == "":
73
  response = "죄송합니다, 제공할 수 있는 정보가 없습니다."
74
  await message.channel.send(response)
75
  finally:
76
  self.is_processing = False
77
 
78
-
79
  def is_message_in_specific_channel(self, message):
80
  return message.channel.id == SPECIFIC_CHANNEL_ID or (
81
  isinstance(message.channel, discord.Thread) and message.channel.parent_id == SPECIFIC_CHANNEL_ID
@@ -89,26 +85,22 @@ async def generate_response(message):
89
 
90
  # 데이터 검색 및 응답 준비
91
  answer = search_in_dataset(user_input, law_dataset)
92
- full_response_text = system_message + "\n\n" + answer
 
93
 
94
- # 응답 분할 전송
95
  max_length = 2000
96
  if len(full_response_text) > max_length:
97
- # 너무 긴 메시지를 여러 부분으로 나누어 보냅니다.
98
  for i in range(0, len(full_response_text), max_length):
99
  part_response = full_response_text[i:i+max_length]
100
  await message.channel.send(part_response)
101
  else:
102
- # 메시지 길이가 적절하면 한 번에 전송
103
  await message.channel.send(full_response_text)
104
 
105
  logging.debug(f'Full model response sent: {full_response_text}')
106
  conversation_history.append({"role": "assistant", "content": full_response_text})
107
 
108
-
109
  def search_in_dataset(query, dataset):
110
- # 간단한 검색 로직을 구현합니다.
111
- # 여기에서는 예제로 단순화하기 위해 첫 번째 항목을 반환합니다.
112
  for record in dataset['train']:
113
  if query in record['사건명']:
114
  return record['사건번호']
 
10
  print("Current Working Directory:", os.getcwd())
11
 
12
  # 데이터셋 파일 이름
13
+ data_files = ['train_0.csv', 'train_1.csv', 'train_2.csv', 'train_3.csv', 'train_4.csv', 'train_5.csv']
14
 
15
+ # 현재 작업 디렉토리에 모든 파일이 있는지 확인
16
+ missing_files = [file for file in data_files if not os.path.exists(file)]
17
+ if missing_files:
18
+ print(f"Missing files: {missing_files}")
19
+ # 필요한 경우 작업 디렉토리 변경
 
20
  os.chdir('/home/user/app')
21
  print("Changed directory to:", os.getcwd())
22
+ else:
23
+ print("All files are present in the current directory.")
24
 
25
  # 데이터셋 로드
26
+ law_dataset = load_dataset('csv', data_files=data_files)
27
  print("Dataset loaded successfully.")
28
 
29
  # 로깅 설정
 
45
  # 대화 히스토리를 저장할 전역 변수
46
  conversation_history = []
47
 
 
 
 
48
  class MyClient(discord.Client):
49
  def __init__(self, *args, **kwargs):
50
  super().__init__(*args, **kwargs)
 
66
  self.is_processing = True
67
  try:
68
  response = await generate_response(message)
 
69
  if response.strip() == "":
70
  response = "죄송합니다, 제공할 수 있는 정보가 없습니다."
71
  await message.channel.send(response)
72
  finally:
73
  self.is_processing = False
74
 
 
75
  def is_message_in_specific_channel(self, message):
76
  return message.channel.id == SPECIFIC_CHANNEL_ID or (
77
  isinstance(message.channel, discord.Thread) and message.channel.parent_id == SPECIFIC_CHANNEL_ID
 
85
 
86
  # 데이터 검색 및 응답 준비
87
  answer = search_in_dataset(user_input, law_dataset)
88
+ if not answer:
89
+ answer = "관련 법률 정보를 찾을 수 없습니다."
90
 
91
+ full_response_text = system_message + "\n\n" + answer
92
  max_length = 2000
93
  if len(full_response_text) > max_length:
 
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
  else:
 
98
  await message.channel.send(full_response_text)
99
 
100
  logging.debug(f'Full model response sent: {full_response_text}')
101
  conversation_history.append({"role": "assistant", "content": full_response_text})
102
 
 
103
  def search_in_dataset(query, dataset):
 
 
104
  for record in dataset['train']:
105
  if query in record['사건명']:
106
  return record['사건번호']