Commit
·
00628ec
1
Parent(s):
32f419d
Update app.py
Browse filesDeal with text length.
app.py
CHANGED
|
@@ -45,6 +45,8 @@ from langchain.agents.agent_types import AgentType
|
|
| 45 |
from langchain.tools import WikipediaQueryRun
|
| 46 |
from langchain.utilities import WikipediaAPIWrapper
|
| 47 |
from langchain.tools import DuckDuckGoSearchRun
|
|
|
|
|
|
|
| 48 |
|
| 49 |
provider_dict = {
|
| 50 |
'Ails': Ails,
|
|
@@ -125,31 +127,31 @@ def bot(history, model_name, provider_name, system_msg, agent):
|
|
| 125 |
return str(response)
|
| 126 |
else:
|
| 127 |
new_template = template.format(system_instruction=system_msg)
|
| 128 |
-
prompt = PromptTemplate(
|
| 129 |
-
input_variables=["chat_history", "human_input"], template=new_template
|
| 130 |
-
)
|
| 131 |
|
| 132 |
-
prev_memory = ''
|
| 133 |
if len(history)>1 and history[-2][1]!=None:
|
| 134 |
-
memory.chat_memory.add_user_message(history[-2][0])
|
| 135 |
memory.chat_memory.add_ai_message(history[-2][1])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 136 |
prev_memory = memory.load_memory_variables({})['chat_history']
|
| 137 |
-
|
| 138 |
-
|
| 139 |
-
|
| 140 |
-
|
| 141 |
-
|
| 142 |
-
|
| 143 |
-
bot_msg = llm._call(prompt=prompt)
|
| 144 |
|
| 145 |
-
|
| 146 |
-
|
| 147 |
-
|
| 148 |
|
| 149 |
def empty_fn():
|
| 150 |
global memory
|
| 151 |
-
memory = ConversationBufferWindowMemory(k=
|
| 152 |
-
return None
|
| 153 |
|
| 154 |
def undo_fn(history):
|
| 155 |
return history[:-1]
|
|
@@ -180,7 +182,6 @@ with gr.Blocks() as demo:
|
|
| 180 |
```
|
| 181 |
The following is a conversation between a human and an AI. The AI is talkative and provides lots of specific details from its context. If the AI does not know the answer to a question, it truthfully says it does not know.
|
| 182 |
{{chat_history}}
|
| 183 |
-
Human: {{human_input}}
|
| 184 |
AI:"""
|
| 185 |
|
| 186 |
memory = ConversationBufferWindowMemory(k=6, memory_key="chat_history")
|
|
|
|
| 45 |
from langchain.tools import WikipediaQueryRun
|
| 46 |
from langchain.utilities import WikipediaAPIWrapper
|
| 47 |
from langchain.tools import DuckDuckGoSearchRun
|
| 48 |
+
from models_for_langchain.memory_func import validate_memory_len
|
| 49 |
+
|
| 50 |
|
| 51 |
provider_dict = {
|
| 52 |
'Ails': Ails,
|
|
|
|
| 127 |
return str(response)
|
| 128 |
else:
|
| 129 |
new_template = template.format(system_instruction=system_msg)
|
|
|
|
|
|
|
|
|
|
| 130 |
|
|
|
|
| 131 |
if len(history)>1 and history[-2][1]!=None:
|
|
|
|
| 132 |
memory.chat_memory.add_ai_message(history[-2][1])
|
| 133 |
+
memory.chat_memory.add_user_message(history[-1][0])
|
| 134 |
+
validate_memory_len(memory=memory, max_token_limit=1800)
|
| 135 |
+
if len(memory.chat_memory.messages)==0:
|
| 136 |
+
for c in '文本长度超过限制,请清空后再试':
|
| 137 |
+
history[-1][1] += c
|
| 138 |
+
yield history
|
| 139 |
+
else:
|
| 140 |
prev_memory = memory.load_memory_variables({})['chat_history']
|
| 141 |
+
prompt = new_template.format(
|
| 142 |
+
chat_history = prev_memory,
|
| 143 |
+
)
|
| 144 |
+
# print(f'prompt = \n --------\n{prompt}\n --------')
|
| 145 |
+
bot_msg = llm._call(prompt=prompt)
|
|
|
|
|
|
|
| 146 |
|
| 147 |
+
for c in bot_msg:
|
| 148 |
+
history[-1][1] += c
|
| 149 |
+
yield history
|
| 150 |
|
| 151 |
def empty_fn():
|
| 152 |
global memory
|
| 153 |
+
memory = ConversationBufferWindowMemory(k=6, memory_key="chat_history")
|
| 154 |
+
return [[None, None]]
|
| 155 |
|
| 156 |
def undo_fn(history):
|
| 157 |
return history[:-1]
|
|
|
|
| 182 |
```
|
| 183 |
The following is a conversation between a human and an AI. The AI is talkative and provides lots of specific details from its context. If the AI does not know the answer to a question, it truthfully says it does not know.
|
| 184 |
{{chat_history}}
|
|
|
|
| 185 |
AI:"""
|
| 186 |
|
| 187 |
memory = ConversationBufferWindowMemory(k=6, memory_key="chat_history")
|