|
@@ -1,4 +1,5 @@
|
|
|
import math
|
|
|
+import re
|
|
|
from typing import Mapping, List, Dict, Any, Optional
|
|
|
|
|
|
from langchain import PromptTemplate
|
|
@@ -178,13 +179,20 @@ class MultiDatasetRouterChain(Chain):
|
|
|
|
|
|
route = self.router_chain.route(inputs)
|
|
|
|
|
|
- if not route.destination:
|
|
|
+ destination = ''
|
|
|
+ if route.destination:
|
|
|
+ pattern = r'\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b'
|
|
|
+ match = re.search(pattern, route.destination, re.IGNORECASE)
|
|
|
+ if match:
|
|
|
+ destination = match.group()
|
|
|
+
|
|
|
+ if not destination:
|
|
|
return {"text": ''}
|
|
|
- elif route.destination in self.dataset_tools:
|
|
|
- return {"text": self.dataset_tools[route.destination].run(
|
|
|
+ elif destination in self.dataset_tools:
|
|
|
+ return {"text": self.dataset_tools[destination].run(
|
|
|
route.next_inputs['input']
|
|
|
)}
|
|
|
else:
|
|
|
raise ValueError(
|
|
|
- f"Received invalid destination chain name '{route.destination}'"
|
|
|
+ f"Received invalid destination chain name '{destination}'"
|
|
|
)
|