-
Notifications
You must be signed in to change notification settings - Fork 41
Open
Description
Summary
Currently we need to pass the prompt_params along with a given request object like we do in claude2_request.
...
messages = [
{"role": "user", "content": "Write me a short poem"},
]
prompt_params = GenerationParams(messages=messages)
claude2_request = ModelGenerationRequest(
model_name=ModelsEnum.CLAUDE_INSTANT_12,
provider_name=ProvidersEnum.ANTHROPIC.value,
order=1,
prompt_params=prompt_params,
)
...While we can possibly update the prompt_params later on by passing a new value by:
claude2_request.prompt_params = new_prompt_paramsThis makes it a dirty and implicit way of passing messages to the context.
Proposal
Update client.generate to accept prompt_params or messages separately ( assuming that prompt_params are model agnostic ).
Hence the following snippet would look like this:
prompt_params = GenerationParams(messages=messages)
claude2_request = ModelGenerationRequest(
model_name=ModelsEnum.CLAUDE_INSTANT_12,
provider_name=ProvidersEnum.ANTHROPIC.value,
order=1,
)
...
response = client.generate(ordered_generation_requests=[claude2_request], messages=prompt_params)The benefit of doing this would be:
- Messages are decoupled from Model Request Objects and hence reusing them would be easier, ie one can generate multiple request objects and create a configuration of their request objects and reuse them with the same messages.
claude2_request_prio = ModelGenerationRequest(...)
claude_request_prio = ModelGenerationRequest(...)
openapi_request_non_prio = ModelGenerationRequest(...)
# Generation Request lists that can be reused as per requirement
main_generation_request_list = [
claude2_request_prio,
claude_request_prio,
openapi_request_non_prio
]
...
# Generation request list is passed to `client.generate()` when a message is received
response = client.generate(ordered_generation_requests=main_generation_request_list, messages=prompt_params)Metadata
Metadata
Assignees
Labels
No labels