let 'Generate' take user's input as parameter (#3086)

### What problem does this PR solve?

#3085

### Type of change

- [x] New Feature (non-breaking change which adds functionality)
This commit is contained in:
Kevin Hu 2024-10-29 17:58:47 +08:00 committed by GitHub
parent 3ed096fd3f
commit f7705d6bc9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 4 additions and 1 deletions

View File

@ -260,7 +260,7 @@ class Canvas(ABC):
def get_history(self, window_size):
convs = []
for role, obj in self.history[(window_size + 1) * -1:]:
for role, obj in self.history[window_size * -1:]:
convs.append({"role": role, "content": (obj if role == "user" else
'\n'.join([str(s) for s in pd.DataFrame(obj)['content']]))})
return convs

View File

@ -105,6 +105,9 @@ class Generate(ComponentBase):
input = (" - "+"\n - ".join([c for c in retrieval_res["content"] if isinstance(c, str)])) if "content" in retrieval_res else ""
for para in self._param.parameters:
cpn = self._canvas.get_component(para["component_id"])["obj"]
if cpn.component_name.lower() == "answer":
kwargs[para["key"]] = self._canvas.get_history(1)[0]["content"]
continue
_, out = cpn.output(allow_partial=False)
if "content" not in out.columns:
kwargs[para["key"]] = "Nothing"