basic scoring function works

This commit is contained in:
Xi Yan 2024-10-23 14:42:28 -07:00
parent 38e31ab525
commit 70c08e694d
5 changed files with 164 additions and 6 deletions

View file

@ -30,6 +30,8 @@ async def register_object_with_provider(obj: RoutableObject, p: Any) -> None:
await p.register_memory_bank(obj)
elif api == Api.datasetio:
await p.register_dataset(obj)
elif api == Api.scoring:
await p.register_scoring_function(obj)
else:
raise ValueError(f"Unknown API {api} for registering object with provider")
@ -95,6 +97,16 @@ class CommonRoutingTableImpl(RoutingTable):
add_objects(datasets)
elif api == Api.scoring:
p.scoring_function_store = self
scoring_functions = await p.list_scoring_functions()
# do in-memory updates due to pesky Annotated unions
for s in scoring_functions:
s.provider_id = pid
add_objects(scoring_functions)
async def shutdown(self) -> None:
for p in self.impls_by_provider_id.values():
await p.shutdown()
@ -109,6 +121,10 @@ class CommonRoutingTableImpl(RoutingTable):
return ("Safety", "shield")
elif isinstance(self, MemoryBanksRoutingTable):
return ("Memory", "memory_bank")
elif isinstance(self, DatasetsRoutingTable):
return ("DatasetIO", "dataset")
elif isinstance(self, ScoringFunctionsRoutingTable):
return ("Scoring", "scoring_function")
else:
raise ValueError("Unknown routing table type")