| 115 | |
| 116 | |
| 117 | class LlamaChatCompletionHandlerRegistry(Singleton): |
| 118 | _chat_handlers: Dict[str, LlamaChatCompletionHandler] = {} |
| 119 | |
| 120 | def register_chat_completion_handler( |
| 121 | self, |
| 122 | name: str, |
| 123 | chat_handler: LlamaChatCompletionHandler, |
| 124 | overwrite: bool = False, |
| 125 | ): |
| 126 | if not overwrite and name in self._chat_handlers: |
| 127 | raise ValueError( |
| 128 | f"Formatter with name '{name}' is already registered. Use `overwrite=True` to overwrite it." |
| 129 | ) |
| 130 | self._chat_handlers[name] = chat_handler |
| 131 | |
| 132 | def unregister_chat_handler(self, name: str): |
| 133 | if name in self._chat_handlers: |
| 134 | del self._chat_handlers[name] |
| 135 | else: |
| 136 | raise ValueError(f"No formatter registered under the name '{name}'.") |
| 137 | |
| 138 | def get_chat_completion_handler_by_name( |
| 139 | self, name: str |
| 140 | ) -> LlamaChatCompletionHandler: |
| 141 | try: |
| 142 | chat_handler = self._chat_handlers[name] |
| 143 | return chat_handler |
| 144 | except KeyError: |
| 145 | raise LlamaChatCompletionHandlerNotFoundException( |
| 146 | f"Invalid chat handler: {name} (valid formats: {list(self._chat_handlers.keys())})" |
| 147 | ) |
| 148 | |
| 149 | |
| 150 | def get_chat_completion_handler(name: str) -> LlamaChatCompletionHandler: |
no outgoing calls
no test coverage detected
searching dependent graphs…