fix: possible fix for "chat_history" missing due to wrong memory key
This commit is contained in:
parent
b85eeb4fe8
commit
d7e56294cb
1 changed files with 16 additions and 5 deletions
|
|
@ -7,6 +7,9 @@ from langflow.cache.utils import compute_hash, load_cache, save_cache
|
||||||
from langflow.graph.graph import Graph
|
from langflow.graph.graph import Graph
|
||||||
from langflow.interface import loading
|
from langflow.interface import loading
|
||||||
from langflow.utils import payload
|
from langflow.utils import payload
|
||||||
|
import logging
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
def load_langchain_object(data_graph):
|
def load_langchain_object(data_graph):
|
||||||
|
|
@ -33,19 +36,24 @@ def process_graph(data_graph: Dict[str, Any]):
|
||||||
with PromptTemplate,then run the graph and return the result and thought.
|
with PromptTemplate,then run the graph and return the result and thought.
|
||||||
"""
|
"""
|
||||||
# Load langchain object
|
# Load langchain object
|
||||||
|
logger.debug("Loading langchain object")
|
||||||
computed_hash, langchain_object = load_langchain_object(data_graph)
|
computed_hash, langchain_object = load_langchain_object(data_graph)
|
||||||
message = data_graph["message"]
|
message = data_graph["message"]
|
||||||
|
logger.debug("Loaded langchain object")
|
||||||
|
|
||||||
# Generate result and thought
|
# Generate result and thought
|
||||||
|
logger.debug("Generating result and thought")
|
||||||
result, thought = get_result_and_thought_using_graph(langchain_object, message)
|
result, thought = get_result_and_thought_using_graph(langchain_object, message)
|
||||||
|
logger.debug("Generated result and thought")
|
||||||
|
|
||||||
# Save langchain_object to cache
|
# Save langchain_object to cache
|
||||||
# We have to save it here because if the
|
# We have to save it here because if the
|
||||||
# memory is updated we need to keep the new values
|
# memory is updated we need to keep the new values
|
||||||
|
logger.debug("Saving langchain object to cache")
|
||||||
save_cache(computed_hash, langchain_object)
|
save_cache(computed_hash, langchain_object)
|
||||||
|
logger.debug("Saved langchain object to cache")
|
||||||
return {
|
return {
|
||||||
"result": result,
|
"result": str(result),
|
||||||
"thought": re.sub(
|
"thought": re.sub(
|
||||||
r"\x1b\[([0-9,A-Z]{1,2}(;[0-9,A-Z]{1,2})?)?[m|K]", "", thought
|
r"\x1b\[([0-9,A-Z]{1,2}(;[0-9,A-Z]{1,2})?)?[m|K]", "", thought
|
||||||
).strip(),
|
).strip(),
|
||||||
|
|
@ -59,12 +67,15 @@ def get_result_and_thought_using_graph(loaded_langchain, message: str):
|
||||||
with io.StringIO() as output_buffer, contextlib.redirect_stdout(output_buffer):
|
with io.StringIO() as output_buffer, contextlib.redirect_stdout(output_buffer):
|
||||||
chat_input = {}
|
chat_input = {}
|
||||||
for key in loaded_langchain.input_keys:
|
for key in loaded_langchain.input_keys:
|
||||||
if key != "chat_history":
|
if key == "chat_history":
|
||||||
|
if hasattr(loaded_langchain, "memory"):
|
||||||
|
loaded_langchain.memory.memory_key = "chat_history"
|
||||||
|
else:
|
||||||
chat_input[key] = message
|
chat_input[key] = message
|
||||||
break
|
|
||||||
if hasattr(loaded_langchain, "run"):
|
if hasattr(loaded_langchain, "run"):
|
||||||
loaded_langchain = loaded_langchain.run
|
loaded_langchain = loaded_langchain.run
|
||||||
result = loaded_langchain
|
result = loaded_langchain(**chat_input)
|
||||||
|
|
||||||
result = (
|
result = (
|
||||||
result.get(loaded_langchain.output_keys[0])
|
result.get(loaded_langchain.output_keys[0])
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue