mirror of
https://github.com/bentoml/OpenLLM.git
synced 2026-01-24 23:37:48 -05:00
feat(server): helpers endpoints for conversation format (#613)
* feat: add support for helpers conversation conversion endpoint also correct schema generation for openllm client Signed-off-by: Aaron <29749331+aarnphm@users.noreply.github.com> * chore: update clients to reuse `openllm-core` logics Signed-off-by: Aaron <29749331+aarnphm@users.noreply.github.com> * chore: add changelog Signed-off-by: Aaron <29749331+aarnphm@users.noreply.github.com> --------- Signed-off-by: Aaron <29749331+aarnphm@users.noreply.github.com>
This commit is contained in:
@@ -67,5 +67,35 @@ def metadata_v1(_: str) -> openllm.MetadataOutput:
|
||||
return _Metadata
|
||||
|
||||
|
||||
class MessagesConverterInput(t.TypedDict):
|
||||
add_generation_prompt: bool
|
||||
messages: t.List[t.Dict[str, t.Any]]
|
||||
|
||||
|
||||
class MessageParam(t.TypedDict):
|
||||
role: t.Literal['system', 'user', 'assistant']
|
||||
content: str
|
||||
|
||||
|
||||
@svc.api(
|
||||
route='/v1/helpers/messages',
|
||||
input=JSON.from_sample(
|
||||
MessagesConverterInput(
|
||||
add_generation_prompt=False,
|
||||
messages=[
|
||||
MessageParam(role='system', content='You are acting as Ernest Hemmingway.'),
|
||||
MessageParam(role='user', content='Hi there!'),
|
||||
MessageParam(role='assistant', content='Yes?'),
|
||||
],
|
||||
)
|
||||
),
|
||||
output=Text(),
|
||||
)
|
||||
def helpers_messages_v1(message: MessagesConverterInput) -> str:
|
||||
add_generation_prompt = message['add_generation_prompt']
|
||||
messages = message['messages']
|
||||
return llm.tokenizer.apply_chat_template(messages, add_generation_prompt=add_generation_prompt, tokenize=False)
|
||||
|
||||
|
||||
# HACK: This must always be the last line in this file, as we will do some MK for OpenAPI schema.
|
||||
openllm.mount_entrypoints(svc, llm)
|
||||
|
||||
@@ -93,7 +93,7 @@ __all__ = ['generate_labels', 'available_devices', 'device_count']
|
||||
|
||||
|
||||
def __dir__() -> t.Sequence[str]:
|
||||
return sorted(__all__)
|
||||
return sorted(__all__) + sorted(dir(openllm_core.utils))
|
||||
|
||||
|
||||
def __getattr__(it: str) -> t.Any:
|
||||
|
||||
Reference in New Issue
Block a user