input_key]; } public function outputKeys(): array { return [$this->output_key]; } public function promptLength(array $docs, array $kwargs = []): ?int { return null; } abstract public function combineDocs(array $docs, array $kwargs = []): array; protected function call(array $inputs): array { error_log('BaseCombineDocumentsChain'); error_log(var_dump($inputs)); $docs = $inputs[$this->inputKey]; $otherKeys = array_filter($inputs, function ($key) { return $key != $this->inputKey; }, ARRAY_FILTER_USE_KEY); $outputAnd_extra_return = $this->combineDocs($docs, $otherKeys); $output = $outputAnd_extra_return[0]; $extraReturn_dict = $outputAnd_extra_return[1]; $extraReturn_dict[$this->outputKey] = $output; return $extraReturn_dict; } }