Repository: modelscope/evalscope
Issue: generation-config没有传入全部参数
Root cause: Configuration Error

## 自查清单

在提交 issue 之前，请确保您已完成以下步骤:
- [x] 我已仔细阅读了[相关使用说明文档](https://evalscope.readthedocs.io/zh-cn/latest/get_started/parameters.html)
- [x] 我已查看了[常见问题解答](https://evalscope.readthedocs.io/zh-cn/latest/get_started/faq.html)
- [x] 我已搜索并查看了现有的 issues，确认这不是一个重复的问题

## 问题描述
generation-config设置的采样参数，`temperature`、`top_p`、`top_k`、`repetition_penalty`中，只有`temperature`、`top_p`正常传递发给了推理引擎，`top_k`、`repetition_penalty`没有传递。`safety_level`似乎也没有传递。

问题版本，推理引擎调度器日志：
<img width="1397" height="152" alt="Image" src="https://github.com/user-attachments/assets/5707fa85-65e3-4fa4-9e21-389ca133a047" />

之前正常版本，推理引擎调度器日志：
<img width="1136" height="124" alt="Image" src="https://github.com/user-attachments/assets/e0f07693-8a75-4a07-95e0-363c906f32dc" />

## EvalScope 版本（必填）
问题版本commit: `975ca2eb659e828b017f55137a3129f2bca44acb` (约2025年10月版本)
之前正常版本commit: `6e3f03a4b653d70ab55b601ed9586b1b3752d9d5` (约2025年4月份版本)

## 使用的工具
- [x] Native / 原生框架
- [ ] Opencompass backend
- [ ] VLMEvalKit backend
- [ ] RAGEval backend
- [ ] Perf / 模型推理压测工具
- [ ] Arena / 竞技场模式

## 执行的代码或指令

问题版本执行命令
```bash
#!/bin/bash
set -x
MODEL_PATH=XXX
BASE_URL=XXX
EBS=128
VERSION="v1"

# 循环 10 次
for run in {1..30}; do
  ## AIME2024
  evalscope eval \
    --model ${MODEL_PATH} \
    --api-url ${BASE_URL}/${VERSION}/chat/completions \
    --eval-type openai_api --datasets aime24 \
    --generation-config max_tokens=65536,temperature=0.6,top_p=0.6,top_k=20,repetition_penalty=1.05,safety_level=none \
    --timeout 10000 \
    --stream \
    --seed 1234 \
    --eval-batch-size $EBS \
    --work-dir ./outputs/aime24
done
```

之前正常版本执行命令，区别只在eval-type
```bash
#!/bin/bash
set -x
MODEL_PATH=XXX
BASE_URL=XXX
EBS=128
VERSION="v1"

# 循环 10 次
for run in {1..30}; do
  ## AIME2024
  evalscope eval \
    --model ${MODEL_PATH} \
    --api-url ${BASE_URL}/${VERSION}/chat/completions \
    --eval-type service --datasets aime24 \
    --generation-config max_tokens=65536,temperature=0.6,top_p=0.6,top_k=20,repetition_penalty=1.05,safety_level=none \
    --timeout 10000 \
    --stream \
    --seed 1234 \
    --eval-batch-size $EBS \
    --work-dir ./outputs/aime24
done
```


## 错误日志

请粘贴完整的错误日志或控制台输出。

## 运行环境

- 操作系统：Ubuntu 20.04
- Python版本：3.10

## 其他信息

如果有其他相关信息，请在此处提供。


@Yunnglin 能帮忙看下嘛？

漏加的地方：
- https://github.com/modelscope/evalscope/blob/b36a703ece49524121029265d7e91dc0d2779155/evalscope/models/openai_compatible.py#L75-L85
- https://github.com/modelscope/evalscope/blob/b36a703ece49524121029265d7e91dc0d2779155/evalscope/models/utils/openai.py#L160

似乎官方openai接口不支持top_k和repetition_penalty两个参数：
https://platform.openai.com/docs/api-reference/chat/create

不过像sglang和vllm框架的openai接口都是支持这些参数的

top_k、repetition_penalty 这些额外的参数请通过 extra_body 参数进行传递，示例：
```shell
--generation-config '{"max_tokens": 65536,"temperature": 0.6,"top_p": 0.6,"extra_body": {"top_k": 20,"repetition_penalty": 1.05,"safety_level": "none"}}'
```

那对extra_body的解析，是依赖框架的处理或者调度器的出来吗？可能框架也不一定会处理extra_body这个field：https://github.com/modelscope/evalscope/blob/b36a703ece49524121029265d7e91dc0d2779155/evalscope/models/utils/openai.py#L206

> 那对extra_body的解析，是依赖框架的处理或者调度器的出来吗？可能框架也不一定会处理extra_body这个field：
> 
> [evalscope/evalscope/models/utils/openai.py](https://github.com/modelscope/evalscope/blob/b36a703ece49524121029265d7e91dc0d2779155/evalscope/models/utils/openai.py#L206)
> 
> Line 206 in [b36a703](/modelscope/evalscope/commit/b36a703ece49524121029265d7e91dc0d2779155)
> 
>  params['extra_body'] = config.extra_body

不依赖框架，会作为请求的参数传入

生效了，👍🏻

<img width="1722" height="56" alt="Image" src="https://github.com/user-attachments/assets/d7637285-7bb0-452f-a5cb-ddc13d0958f7" />

@Yunnglin 那现在top_k通过哪个传呢？https://github.com/modelscope/evalscope/commit/934784a46ff99054f630b9dd4c9ac63b3b39c0bf

1. 直接传递 top_k 
2. 从extra_body中传递 top_k 

两种方式都是支持的