Skip to content

Unbound prompt_params or messages from model_request objects for better reusing. #8

@unownone

Description

@unownone

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_params

This 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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions