Browse Source
Allow system message
Signed-off-by: Jael Gu <mengjia.gu@zilliz.com>
main
1 changed files with
17 additions and
6 deletions
-
ernie_chat.py
|
@ -63,13 +63,24 @@ class ErnieChat(PyOperator): |
|
|
new_messages.append(m) |
|
|
new_messages.append(m) |
|
|
else: |
|
|
else: |
|
|
for k, v in m.items(): |
|
|
for k, v in m.items(): |
|
|
if k == 'question': |
|
|
|
|
|
new_m = {'role': 'user', 'content': v} |
|
|
|
|
|
elif k == 'answer': |
|
|
|
|
|
new_m = {'role': 'assistant', 'content': v} |
|
|
|
|
|
|
|
|
if ('role' and 'content' in m) and (m['role'] in ['system', 'assistant', 'user']): |
|
|
|
|
|
if m['role'] == 'system': |
|
|
|
|
|
new_messages.append(m) |
|
|
|
|
|
new_messages.append({'role': 'assistant', 'content': 'OK.'}) |
|
|
|
|
|
else: |
|
|
|
|
|
new_messages.append(m) |
|
|
else: |
|
|
else: |
|
|
raise KeyError('Invalid message key: only accept key value from ["question", "answer"].') |
|
|
|
|
|
new_messages.append(new_m) |
|
|
|
|
|
|
|
|
for k, v in m.items(): |
|
|
|
|
|
if k == 'question': |
|
|
|
|
|
new_ms = [{'role': 'user', 'content': v}] |
|
|
|
|
|
elif k == 'answer': |
|
|
|
|
|
new_ms = [{'role': 'assistant', 'content': v}] |
|
|
|
|
|
elif k == 'system': |
|
|
|
|
|
new_ms = [{'role': 'user', 'content': v}, {'role': 'assistant', 'content': 'OK.'}] |
|
|
|
|
|
else: |
|
|
|
|
|
raise KeyError( |
|
|
|
|
|
'Invalid message key: only accept key value from ["question", "answer"].') |
|
|
|
|
|
new_messages += new_ms |
|
|
return new_messages |
|
|
return new_messages |
|
|
|
|
|
|
|
|
def stream_output(self, response): |
|
|
def stream_output(self, response): |
|
|