refac
This commit is contained in:
@@ -2102,6 +2102,35 @@ async def process_chat_payload(request, form_data, user, metadata, model):
|
||||
# -> Chat Code Interpreter (Form Data Update) -> (Default) Chat Tools Function Calling
|
||||
# -> Chat Files
|
||||
|
||||
# Arena model resolution — pick the sub-model now so all downstream
|
||||
# processing (knowledge, capabilities, tools, params) uses its settings
|
||||
# instead of the empty arena wrapper.
|
||||
if model.get('owned_by') == 'arena':
|
||||
arena_model_ids = model.get('info', {}).get('meta', {}).get('model_ids')
|
||||
arena_filter_mode = model.get('info', {}).get('meta', {}).get('filter_mode')
|
||||
if arena_model_ids and arena_filter_mode == 'exclude':
|
||||
arena_model_ids = [
|
||||
available_model['id']
|
||||
for available_model in request.app.state.MODELS.values()
|
||||
if available_model.get('owned_by') != 'arena' and available_model['id'] not in arena_model_ids
|
||||
]
|
||||
|
||||
if isinstance(arena_model_ids, list) and arena_model_ids:
|
||||
selected_model_id = random.choice(arena_model_ids)
|
||||
else:
|
||||
arena_model_ids = [
|
||||
available_model['id']
|
||||
for available_model in request.app.state.MODELS.values()
|
||||
if available_model.get('owned_by') != 'arena'
|
||||
]
|
||||
selected_model_id = random.choice(arena_model_ids)
|
||||
|
||||
selected_model = request.app.state.MODELS.get(selected_model_id)
|
||||
if selected_model:
|
||||
model = selected_model
|
||||
form_data['model'] = selected_model_id
|
||||
metadata['selected_model_id'] = selected_model_id
|
||||
|
||||
form_data = apply_params_to_form_data(form_data, model)
|
||||
log.debug(f'form_data: {form_data}')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user