Repository: open-compass/opencompass
Issue: [Bug] 新增API模型报错 KeyError: 'opencompass.models.xxx is not in the opencompass::model registry.
Root cause: Configuration Error

### Prerequisite

- [X] I have searched [Issues](https://github.com/open-compass/opencompass/issues/) and [Discussions](https://github.com/open-compass/opencompass/discussions) but cannot get the expected help.
- [X] The bug has not been fixed in the [latest version](https://github.com/open-compass/opencompass).

### Type

I'm evaluating with the officially supported tasks/models/datasets.

### Environment

{'CUDA available': True,
 'CUDA_HOME': '/usr/local/cuda',
 'GCC': 'gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0',
 'GPU 0,1,2,3,4,5,6,7': 'NVIDIA A800-SXM4-80GB',
 'MMEngine': '0.10.3',
 'MUSA available': False,
 'NVCC': 'Cuda compilation tools, release 11.7, V11.7.64',
 'OpenCV': '4.9.0',
 'PyTorch': '1.13.1+cu117',
 'PyTorch compiling details': 'PyTorch built with:\n'
                              '  - GCC 9.3\n'
                              '  - C++ Version: 201402\n'
                              '  - Intel(R) Math Kernel Library Version '
                              '2020.0.0 Product Build 20191122 for Intel(R) 64 '
                              'architecture applications\n'
                              '  - Intel(R) MKL-DNN v2.6.0 (Git Hash '
                              '52b5f107dd9cf10910aaa19cb47f3abf9b349815)\n'
                              '  - OpenMP 201511 (a.k.a. OpenMP 4.5)\n'
                              '  - LAPACK is enabled (usually provided by '
                              'MKL)\n'
                              '  - NNPACK is enabled\n'
                              '  - CPU capability usage: AVX2\n'
                              '  - CUDA Runtime 11.7\n'
                              '  - NVCC architecture flags: '
                              '-gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_80,code=sm_80;-gencode;arch=compute_86,code=sm_86\n'
                              '  - CuDNN 8.5\n'
                              '  - Magma 2.6.1\n'
                              '  - Build settings: BLAS_INFO=mkl, '
                              'BUILD_TYPE=Release, CUDA_VERSION=11.7, '
                              'CUDNN_VERSION=8.5.0, '
                              'CXX_COMPILER=/opt/rh/devtoolset-9/root/usr/bin/c++, '
                              'CXX_FLAGS= -fabi-version=11 -Wno-deprecated '
                              '-fvisibility-inlines-hidden -DUSE_PTHREADPOOL '
                              '-fopenmp -DNDEBUG -DUSE_KINETO -DUSE_FBGEMM '
                              '-DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK '
                              '-DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE '
                              '-DEDGE_PROFILER_USE_KINETO -O2 -fPIC '
                              '-Wno-narrowing -Wall -Wextra '
                              '-Werror=return-type -Werror=non-virtual-dtor '
                              '-Wno-missing-field-initializers '
                              '-Wno-type-limits -Wno-array-bounds '
                              '-Wno-unknown-pragmas -Wunused-local-typedefs '
                              '-Wno-unused-parameter -Wno-unused-function '
                              '-Wno-unused-result -Wno-strict-overflow '
                              '-Wno-strict-aliasing '
                              '-Wno-error=deprecated-declarations '
                              '-Wno-stringop-overflow -Wno-psabi '
                              '-Wno-error=pedantic -Wno-error=redundant-decls '
                              '-Wno-error=old-style-cast '
                              '-fdiagnostics-color=always -faligned-new '
                              '-Wno-unused-but-set-variable '
                              '-Wno-maybe-uninitialized -fno-math-errno '
                              '-fno-trapping-math -Werror=format '
                              '-Werror=cast-function-type '
                              '-Wno-stringop-overflow, LAPACK_INFO=mkl, '
                              'PERF_WITH_AVX=1, PERF_WITH_AVX2=1, '
                              'PERF_WITH_AVX512=1, TORCH_VERSION=1.13.1, '
                              'USE_CUDA=ON, USE_CUDNN=ON, USE_EXCEPTION_PTR=1, '
                              'USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, '
                              'USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, '
                              'USE_NNPACK=ON, USE_OPENMP=ON, USE_ROCM=OFF, \n',
 'Python': '3.10.9 (main, Mar  1 2023, 18:23:06) [GCC 11.2.0]',
 'TorchVision': '0.14.1+cu117',
 'numpy_random_seed': 2147483648,
 'opencompass': '0.2.2+0919b08',
 'sys.platform': 'linux'}

### Reproduces the problem - code/configuration sample

1

### Reproduces the problem - command or script

1

### Reproduces the problem - error message

Traceback (most recent call last):
  File "/home/dengkaibiao/opencompass/opencompass/tasks/openicl_infer.py", line 153, in <module>
    inferencer.run()
  File "/home/dengkaibiao/opencompass/opencompass/tasks/openicl_infer.py", line 65, in run
    self.model = build_model_from_cfg(model_cfg)
  File "/home/dengkaibiao/anaconda3/lib/python3.10/site-packages/opencompass/utils/build.py", line 25, in build_model_from_cfg
    return MODELS.build(model_cfg)
  File "/home/dengkaibiao/anaconda3/lib/python3.10/site-packages/mmengine/registry/registry.py", line 570, in build
    return self.build_func(cfg, *args, **kwargs, registry=self)
  File "/home/dengkaibiao/anaconda3/lib/python3.10/site-packages/mmengine/registry/build_functions.py", line 100, in build_from_cfg
    raise KeyError(
KeyError: 'opencompass.models.deng is not in the opencompass::model registry. Please check whether the value of `opencompass.models.deng` is correct or it was registered as expected. More details can be found at https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#import-the-custom-module'


### Other information

看报错信息提示，新增模型没有注册；
执行脚本前，已经在opencompass/opencompass/models目录下创建xxx_api.py文件，opencompass/configs/models目录下创建deng目录，并在该目录下创建deng.py配置文件，内容如下：
from opencompass.models import deng
api_meta_template = dict(
    round=[
            dict(role='HUMAN', api_role='HUMAN'),
            dict(role='BOT', api_role='BOT', generate=True),
    ],
)
models = [
    dict(abbr='deng',
        type=deng, path='deng',
        key='http://123.10.21.10:1999',  # The key will be obtained from $OPENAI_API_KEY, but you can write down your key here as well
        meta_template=api_meta_template,
        query_per_second=1,
        max_out_len=4096, max_seq_len=4096, batch_size=8),
]

同时opencompass/configs目录下也创建了eval_deng.py

Please ensure that you have successfully installed OpenCompass.

this error is often caused by not pip install correctly
feel free to reopen it if needed

@bittersweet1999 @tonysy facing a very similar error when trying to run OpenCompass. 

Here are the steps on my end: 
1. Add a custom model `custom_mixtral.py` to `opencompass/opencompass/models/` and also in `__init__.py` import
2. Add a custom config `mixtral_custom_config.py` to `opencompass/configs/models`

Running `python tools/list_configs.py` doesn't show the custom config. 

```bash
$ pip list | grep opencompass
opencompass               0.3.0          /home/ubuntu/llms/evals/opencompass
```

Have also tried running `pip install -e .` after every change. Even simple changes like `print(model)` aren't getting picked up. Any solutions? 

> @bittersweet1999 @tonysy facing a very similar error when trying to run OpenCompass.
> 
> Here are the steps on my end:
> 
> 1. Add a custom model `custom_mixtral.py` to `opencompass/opencompass/models/` and also in `__init__.py` import
> 2. Add a custom config `mixtral_custom_config.py` to `opencompass/configs/models`
> 
> Running `python tools/list_configs.py` doesn't show the custom config.
> 
> ```shell
> $ pip list | grep opencompass
> opencompass               0.3.0          /home/ubuntu/llms/evals/opencompass
> ```
> 
> Have also tried running `pip install -e .` after every change. Even simple changes like `print(model)` aren't getting picked up. Any solutions?

Hey! facing exactly the same issue.
I also tried pip install -e . again and again, (uninstall then install) but the problem was never solved.

Have you solved the problem by now? Could you please share with me your solutions? Thanks a lot.