aiqcamp commited on
Commit
34b069c
·
verified ·
1 Parent(s): b1c9970

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +36 -31
app.py CHANGED
@@ -76,41 +76,46 @@ def respond(
76
  ):
77
  messages = [{"role": "system", "content": system_message}]
78
 
79
- for val in history:
80
- if val[0]:
81
- messages.append({"role": "user", "content": val[0]})
82
- if val[1]:
83
- messages.append({"role": "assistant", "content": val[1]})
84
 
85
  messages.append({"role": "user", "content": message})
86
 
87
- response = ""
88
-
89
- for message in client.chat.completions.create(
90
- model="CohereForAI/c4ai-command-r-plus-08-2024",
91
- max_tokens=max_tokens,
92
- stream=True,
93
- temperature=temperature,
94
- top_p=top_p,
95
- messages=messages,
96
- ):
97
- token = message.choices[0].delta.content
98
- response += token
99
- yield response
100
-
101
- # 챗봇 단백질 생성 관련 함수들
 
 
 
 
 
 
102
  def process_chat(message, history):
103
- messages = [{"role": "user", "content": message}]
104
- response = pipe(messages)[0]['generated_text']
105
-
106
- if any(keyword in message.lower() for keyword in ['protein', 'generate', '단백질', '생성']):
107
- relevant_data = search_protein_data(message)
108
- params = extract_parameters(response, relevant_data)
109
- protein_result = generate_protein(params)
110
- explanation = generate_explanation(protein_result, params)
111
- return response + "\n\n" + explanation
112
-
113
- return response
114
 
115
  def search_protein_data(query):
116
  relevant_entries = []
 
76
  ):
77
  messages = [{"role": "system", "content": system_message}]
78
 
79
+ for user_msg, assistant_msg in history:
80
+ messages.append({"role": "user", "content": user_msg})
81
+ if assistant_msg:
82
+ messages.append({"role": "assistant", "content": assistant_msg})
 
83
 
84
  messages.append({"role": "user", "content": message})
85
 
86
+ try:
87
+ response = ""
88
+ for message in client.chat.completions.create(
89
+ model="CohereForAI/c4ai-command-r-plus-08-2024",
90
+ max_tokens=max_tokens,
91
+ stream=True,
92
+ temperature=temperature,
93
+ top_p=top_p,
94
+ messages=messages,
95
+ ):
96
+ if hasattr(message.choices[0].delta, 'content'):
97
+ token = message.choices[0].delta.content
98
+ if token is not None:
99
+ response += token
100
+ yield history + [[message, response]]
101
+
102
+ return history + [[message, response]]
103
+ except Exception as e:
104
+ print(f"Error in respond: {str(e)}")
105
+ return history + [[message, f"오류가 발생했습니다: {str(e)}"]]
106
+
107
  def process_chat(message, history):
108
+ try:
109
+ if any(keyword in message.lower() for keyword in ['protein', 'generate', '단백질', '생성']):
110
+ relevant_data = search_protein_data(message)
111
+ params = extract_parameters(message, relevant_data)
112
+ protein_result = generate_protein(params)
113
+ explanation = generate_explanation(protein_result, params)
114
+ return history + [[message, explanation]]
115
+ else:
116
+ return history + [[message, "단백질 생성 관련 키워드를 포함해주세요."]]
117
+ except Exception as e:
118
+ return history + [[message, f"오류가 발생했습니다: {str(e)}"]]
119
 
120
  def search_protein_data(query):
121
  relevant_entries = []