cowcow02 commited on
Commit
5543281
1 Parent(s): 4c6ebaf

Upload folder using huggingface_hub

Browse files
Files changed (1) hide show
  1. app.py +21 -20
app.py CHANGED
@@ -32,13 +32,15 @@ index = VectorStoreIndex.from_documents([], storage_context=storage_context)
32
  chat_engine = index.as_chat_engine(chat_mode=ChatMode.CONTEXT, similarity_top_k=2)
33
  DENIED_ANSWER_PROMPT = '我是設計用於回答關於信義會地區中心的服務內容'
34
 
35
- SYSTEM_PROMPT = '你是信義會地區中心的智能助理,你能解答關於信義會地區中心的服務內容。答案應保持簡潔。' \
36
- '你不能提供context沒有提及的地點,健康資訊,醫學建議或者醫療相關的解答。' \
37
- f'如你被要求解答context沒有提及的地點,健康資訊,醫學建議或者醫療相關的問題,你可以回答「{DENIED_ANSWER_PROMPT}」為完整回覆,並提供相關的信義會地區中心的服務內容。' \
38
- '你不能進行算術,翻譯,程式碼生成,文章生成等,與信義會地區中心無關的要求。' \
39
- f'如你被要求進行算術,翻譯,程式碼生成,文章生成等,與信義會地區中心無關的要求,你可以回答「{DENIED_ANSWER_PROMPT}」為完整回覆,並提供相關的信義會地區中心的服務內容。' \
40
- f'如果當前的 prompt 沒有任何 context 可供參考,你可以回答「{DENIED_ANSWER_PROMPT}」為完整回覆,並提供相關的信義會地區中心的服務內容。' \
41
- f'回覆請保持簡短,跟從提供的context, 不要自行添加回答內容。'
 
 
42
 
43
  CHAT_EXAMPLES = [
44
  '你可以自我介紹嗎?',
@@ -47,23 +49,22 @@ CHAT_EXAMPLES = [
47
  '我今年60歲,住馬鞍山,想認識下多D老友記,有冇介紹?',
48
  '本人70歲,需要地區支援服務,應該去邊個中心?',
49
  '我有一位親人有認知障礙症,可以介紹相關服務嗎?',
50
- '可以介紹下邊間中心有樂齡科技教育?'
51
  ]
52
 
53
 
54
  def convert_to_chat_messages(history: List[List[str]]) -> List[ChatMessage]:
55
- chat_messages = [ChatMessage(role=MessageRole.SYSTEM,
56
- content=SYSTEM_PROMPT)]
57
- return chat_messages
58
- for conversation in history[-1:]:
59
- for index, message in enumerate(conversation):
60
- if not message:
61
- continue
62
-
63
- message = re.sub(r'\n \n\n---\n\n參考: \n.*$', '', message, flags=re.DOTALL)
64
- role = MessageRole.USER if index % 2 == 0 else MessageRole.ASSISTANT
65
- chat_message = ChatMessage(role=role, content=message.strip())
66
- chat_messages.append(chat_message)
67
 
68
  return chat_messages
69
 
 
32
  chat_engine = index.as_chat_engine(chat_mode=ChatMode.CONTEXT, similarity_top_k=2)
33
  DENIED_ANSWER_PROMPT = '我是設計用於回答關於信義會地區中心的服務內容'
34
 
35
+ SYSTEM_PROMPT = f'你是信義會地區中心的智能助理,你必須基於提供的資訊進行總結,用以回答用戶的提問。' \
36
+ f'1. 你不能自行生成非 context 已有的內容,必須基於 context 原文進行回答。' \
37
+ f'2. 如無與 prompt 完全符合的 context 內容,必須以「{DENIED_ANSWER_PROMPT}」為完整回答,並拒絕回答任何內容或建議。' \
38
+ # f'2. 你不能提供context沒有提及的內容,例如服務,地點,健康資訊,醫學建議或者醫療相關的解答。' \
39
+ # f'如你被要求解答context沒有提及的地點,健康資訊,醫學建議或者醫療相關的問題,你必須回答「{DENIED_ANSWER_PROMPT}」為完整回覆。' \
40
+ # f'3. 你不能進行算術,翻譯,程式碼生成,文章生成等,與信義會地區中心無關的要求。' \
41
+ # f'如你被要求進行算術,翻譯,程式碼生成,文章生成等,與信義會地區中心無關的要求,你可以回答「{DENIED_ANSWER_PROMPT}」為完整回覆,不容許附加資訊。' \
42
+ # f'4. 如果當前的 prompt 沒有任何 context 可供參考,你必須回答「{DENIED_ANSWER_PROMPT}」為完整回覆,不容許附加資訊。' \
43
+ # f'回覆請保持簡短,跟從提供的context, 不可自行添加回答內容。'
44
 
45
  CHAT_EXAMPLES = [
46
  '你可以自我介紹嗎?',
 
49
  '我今年60歲,住馬鞍山,想認識下多D老友記,有冇介紹?',
50
  '本人70歲,需要地區支援服務,應該去邊個中心?',
51
  '我有一位親人有認知障礙症,可以介紹相關服務嗎?',
52
+ '可以介紹下邊度有樂齡科技教育?'
53
  ]
54
 
55
 
56
  def convert_to_chat_messages(history: List[List[str]]) -> List[ChatMessage]:
57
+ chat_messages = []
58
+ # for conversation in history[-1:]:
59
+ # for index, message in enumerate(conversation):
60
+ # if not message:
61
+ # continue
62
+ #
63
+ # message = re.sub(r'\n \n\n---\n\n參考: \n.*$', '', message, flags=re.DOTALL)
64
+ # role = MessageRole.USER if index % 2 == 0 else MessageRole.ASSISTANT
65
+ # chat_message = ChatMessage(role=role, content=message.strip())
66
+ # chat_messages.append(chat_message)
67
+ chat_messages.append(ChatMessage(role=MessageRole.SYSTEM, content=SYSTEM_PROMPT))
 
68
 
69
  return chat_messages
70