Repository: Marker-Inc-Korea/AutoRAG
Issue: colab ipynb
Root cause: Documentation Deficiency

Is it possible to create a Colab ipynb for a form modell huggfacee or Olama with an embedding huugingfacce or Olama modelll?

like ipynb open ai

????????

https://github.com/Marker-Inc-Korea/AutoRAG/issues/1115

https://github.com/werruww/xautoragggg/blob/main/x.ipynb

(base) m@m:~$ conda activate 1
(1) m@m:~$ run llama3.2:1b
Command 'run' not found, did you mean:
  command 'bun' from snap bun-js (1.2.17)
  command 'rue' from snap darkdimension-rue (1.0.7)
  command 'srun' from deb slurm-client (23.02.6-1ubuntu2)
  command 'rup' from deb rstat-client (4.0.1-11)
  command 'grun' from deb grun (0.9.3+git20200303-3)
  command 'zun' from deb python3-zunclient (4.7.0-0ubuntu1)
  command 'crun' from deb crun (1.12-1)
  command 'rn' from deb trn4 (4.0-test77-16)
  command 'runq' from deb exim4-daemon-heavy (4.97-4ubuntu4.3)
  command 'runq' from deb exim4-daemon-light (4.97-4ubuntu4.3)
  command 'runq' from deb sendmail-bin (8.17.2-1)
  command 'runc' from deb runc (1.1.12-0ubuntu3.1)
  command 'zrun' from deb moreutils (0.67-1)
See 'snap info <snapname>' for additional versions.
(1) m@m:~$ ollama list
NAME                ID              SIZE      MODIFIED
bge-m3:latest       790764642607    1.2 GB    3 weeks ago
qwen2.5:3b          357c53fb659c    1.9 GB    3 weeks ago
orca-mini:latest    2dbd9f439647    2.0 GB    4 weeks ago
llama3.2:1b         baf6a787fdff    1.3 GB    5 weeks ago
(1) m@m:~$ ano 1.yaml
Command 'ano' not found, did you mean:
  command 'ant' from snap ant (1.10.15)
  command 'nano' from snap nano (7.2+pkg-4057)
  command 'ao' from snap ao (6.9.0)
  command 'and' from deb and (1.2.2-4.2)
  command 'anno' from deb mailutils-mh (1:3.16-1build1)
  command 'anno' from deb mmh (0.4-6)
  command 'anno' from deb nmh (1.8-1)
  command 'an' from deb an (1.2-7build2)
  command 'ant' from deb ant (1.10.14-1)
  command 'nano' from deb nano (7.2-2ubuntu0.1)
See 'snap info <snapname>' for additional versions.
(1) m@m:~$ vit 1.yaml
Command 'vit' not found, but can be installed with:
sudo apt install vit
(1) m@m:~$ dir
--add-host                         New\ Text\ Document\ (2).txt  cpu_api.py    myenv
--name                             New\ Text\ Document\ (3).txt  data          simple_ollama.yaml:Zone.Identifier
-e                                 New\ Text\ Document\ (4).txt  dozerdb       src
-p                                 New\ Text\ Document.txt       erf           test_ipex.py
-v                                 __pycache__                   intel
2.py                               aaa.py                        miniconda.sh
Miniconda3-latest-Linux-x86_64.sh  config.yaml                   miniconda3
(1) m@m:~$ autorag run_web --yaml_path config.yaml
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
[06/29/25 19:45:59] INFO     [config.py:54] >> PyTorch version 2.7.1 available.                             config.py:54

  You can now view your Streamlit app in your browser.

  Local URL: http://localhost:8501
  Network URL: http://172.21.151.42:8501

gio: http://localhost:8501: Operation not supported
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
────────────────────────── Traceback (most recent call last) ───────────────────────────
  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/streamlit/runtime/scriptrunne
  r/exec_code.py:128 in exec_func_with_error_handling

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/streamlit/runtime/scriptrunne
  r/script_runner.py:669 in code_to_exec

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:81 in <module>

    78
    79
    80 if __name__ == "__main__":
  ❱ 81 │   run_web_server()
    82

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1442 in
  __call__

    1439 │
    1440 │   def __call__(self, *args: t.Any, **kwargs: t.Any) -> t.Any:
    1441 │   │   """Alias for :meth:`main`."""
  ❱ 1442 │   │   return self.main(*args, **kwargs)
    1443
    1444
    1445 class _FakeSubclassCheck(type):

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1363 in main

    1360 │   │   try:
    1361 │   │   │   try:
    1362 │   │   │   │   with self.make_context(prog_name, args, **extra) as ctx:
  ❱ 1363 │   │   │   │   │   rv = self.invoke(ctx)
    1364 │   │   │   │   │   if not standalone_mode:
    1365 │   │   │   │   │   │   return rv
    1366 │   │   │   │   │   # it's not safe to `ctx.exit(rv)` here!

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1226 in invoke

    1223 │   │   │   echo(style(message, fg="red"), err=True)
    1224 │   │
    1225 │   │   if self.callback is not None:
  ❱ 1226 │   │   │   return ctx.invoke(self.callback, **ctx.params)
    1227 │
    1228 │   def shell_complete(self, ctx: Context, incomplete: str) -> list[Completio
    1229 │   │   """Return a list of completions for the incomplete value. Looks

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:794 in invoke

     791 │   │
     792 │   │   with augment_usage_errors(self):
     793 │   │   │   with ctx:
  ❱  794 │   │   │   │   return callback(*args, **kwargs)
     795 │
     796 │   def forward(self, cmd: Command, /, *args: t.Any, **kwargs: t.Any) -> t.An
     797 │   │   """Similar to :meth:`invoke` but fills in default keyword

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:73 in
  run_web_server

    70 def run_web_server(
    71 │   yaml_path: Optional[str], project_dir: Optional[str], trial_path: Optional[
    72 ):
  ❱ 73 │   runner = get_runner(yaml_path, project_dir, trial_path)
    74 │   set_initial_state()
    75 │   set_page_config()
    76 │   set_page_header()

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:17 in
  get_runner

    14 │   elif yaml_path and trial_path:
    15 │   │   raise ValueError("yaml_path and trial_path cannot be given at the same
    16 │   elif yaml_path:
  ❱ 17 │   │   return Runner.from_yaml(yaml_path, project_dir=project_dir)
    18 │   elif trial_path:
    19 │   │   return Runner.from_trial_folder(trial_path)
    20

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/deploy/base.py:187 in
  from_yaml

    184 │   │   :return: Initialized Runner.
    185 │   │   """
    186 │   │   config = load_yaml_config(yaml_path)
  ❱ 187 │   │   return cls(config, project_dir=project_dir)
    188 │
    189 │   @classmethod
    190 │   def from_trial_folder(cls, trial_path: str):

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/deploy/base.py:161 in
  __init__

    158 │   │   for node_line in node_lines:
    159 │   │   │   for node in node_line["nodes"]:
    160 │   │   │   │   if len(node["modules"]) != 1:
  ❱ 161 │   │   │   │   │   raise ValueError(
    162 │   │   │   │   │   │   "The number of modules in a node must be 1 for using r
    163 │   │   │   │   │   │   "Please use extract_best_config method for extracting
    164 │   │   │   │   │   )
────────────────────────────────────────────────────────────────────────────────────────
ValueError: The number of modules in a node must be 1 for using runner.Please use
extract_best_config method for extracting yaml file from evaluated trial.
^C  Stopping...
^C
Aborted!
^C
(1) m@m:~$ autorag run_web --yaml_path config.yaml
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(


from win 10 wsl




(base) m@m:~$ conda activate 1
(1) m@m:~$ run llama3.2:1b
Command 'run' not found, did you mean:
  command 'bun' from snap bun-js (1.2.17)
  command 'rue' from snap darkdimension-rue (1.0.7)
  command 'srun' from deb slurm-client (23.02.6-1ubuntu2)
  command 'rup' from deb rstat-client (4.0.1-11)
  command 'grun' from deb grun (0.9.3+git20200303-3)
  command 'zun' from deb python3-zunclient (4.7.0-0ubuntu1)
  command 'crun' from deb crun (1.12-1)
  command 'rn' from deb trn4 (4.0-test77-16)
  command 'runq' from deb exim4-daemon-heavy (4.97-4ubuntu4.3)
  command 'runq' from deb exim4-daemon-light (4.97-4ubuntu4.3)
  command 'runq' from deb sendmail-bin (8.17.2-1)
  command 'runc' from deb runc (1.1.12-0ubuntu3.1)
  command 'zrun' from deb moreutils (0.67-1)
See 'snap info <snapname>' for additional versions.
(1) m@m:~$ ollama list
NAME                ID              SIZE      MODIFIED
bge-m3:latest       790764642607    1.2 GB    3 weeks ago
qwen2.5:3b          357c53fb659c    1.9 GB    3 weeks ago
orca-mini:latest    2dbd9f439647    2.0 GB    4 weeks ago
llama3.2:1b         baf6a787fdff    1.3 GB    5 weeks ago
(1) m@m:~$ ano 1.yaml
Command 'ano' not found, did you mean:
  command 'ant' from snap ant (1.10.15)
  command 'nano' from snap nano (7.2+pkg-4057)
  command 'ao' from snap ao (6.9.0)
  command 'and' from deb and (1.2.2-4.2)
  command 'anno' from deb mailutils-mh (1:3.16-1build1)
  command 'anno' from deb mmh (0.4-6)
  command 'anno' from deb nmh (1.8-1)
  command 'an' from deb an (1.2-7build2)
  command 'ant' from deb ant (1.10.14-1)
  command 'nano' from deb nano (7.2-2ubuntu0.1)
See 'snap info <snapname>' for additional versions.
(1) m@m:~$ vit 1.yaml
Command 'vit' not found, but can be installed with:
sudo apt install vit
(1) m@m:~$ dir
--add-host                         New\ Text\ Document\ (2).txt  cpu_api.py    myenv
--name                             New\ Text\ Document\ (3).txt  data          simple_ollama.yaml:Zone.Identifier
-e                                 New\ Text\ Document\ (4).txt  dozerdb       src
-p                                 New\ Text\ Document.txt       erf           test_ipex.py
-v                                 __pycache__                   intel
2.py                               aaa.py                        miniconda.sh
Miniconda3-latest-Linux-x86_64.sh  config.yaml                   miniconda3
(1) m@m:~$ autorag run_web --yaml_path config.yaml
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
[06/29/25 19:45:59] INFO     [config.py:54] >> PyTorch version 2.7.1 available.                             config.py:54

  You can now view your Streamlit app in your browser.

  Local URL: http://localhost:8501
  Network URL: http://172.21.151.42:8501

gio: http://localhost:8501: Operation not supported
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
────────────────────────── Traceback (most recent call last) ───────────────────────────
  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/streamlit/runtime/scriptrunne
  r/exec_code.py:128 in exec_func_with_error_handling

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/streamlit/runtime/scriptrunne
  r/script_runner.py:669 in code_to_exec

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:81 in <module>

    78
    79
    80 if __name__ == "__main__":
  ❱ 81 │   run_web_server()
    82

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1442 in
  __call__

    1439 │
    1440 │   def __call__(self, *args: t.Any, **kwargs: t.Any) -> t.Any:
    1441 │   │   """Alias for :meth:`main`."""
  ❱ 1442 │   │   return self.main(*args, **kwargs)
    1443
    1444
    1445 class _FakeSubclassCheck(type):

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1363 in main

    1360 │   │   try:
    1361 │   │   │   try:
    1362 │   │   │   │   with self.make_context(prog_name, args, **extra) as ctx:
  ❱ 1363 │   │   │   │   │   rv = self.invoke(ctx)
    1364 │   │   │   │   │   if not standalone_mode:
    1365 │   │   │   │   │   │   return rv
    1366 │   │   │   │   │   # it's not safe to `ctx.exit(rv)` here!

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1226 in invoke

    1223 │   │   │   echo(style(message, fg="red"), err=True)
    1224 │   │
    1225 │   │   if self.callback is not None:
  ❱ 1226 │   │   │   return ctx.invoke(self.callback, **ctx.params)
    1227 │
    1228 │   def shell_complete(self, ctx: Context, incomplete: str) -> list[Completio
    1229 │   │   """Return a list of completions for the incomplete value. Looks

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:794 in invoke

     791 │   │
     792 │   │   with augment_usage_errors(self):
     793 │   │   │   with ctx:
  ❱  794 │   │   │   │   return callback(*args, **kwargs)
     795 │
     796 │   def forward(self, cmd: Command, /, *args: t.Any, **kwargs: t.Any) -> t.An
     797 │   │   """Similar to :meth:`invoke` but fills in default keyword

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:73 in
  run_web_server

    70 def run_web_server(
    71 │   yaml_path: Optional[str], project_dir: Optional[str], trial_path: Optional[
    72 ):
  ❱ 73 │   runner = get_runner(yaml_path, project_dir, trial_path)
    74 │   set_initial_state()
    75 │   set_page_config()
    76 │   set_page_header()

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:17 in
  get_runner

    14 │   elif yaml_path and trial_path:
    15 │   │   raise ValueError("yaml_path and trial_path cannot be given at the same
    16 │   elif yaml_path:
  ❱ 17 │   │   return Runner.from_yaml(yaml_path, project_dir=project_dir)
    18 │   elif trial_path:
    19 │   │   return Runner.from_trial_folder(trial_path)
    20

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/deploy/base.py:187 in
  from_yaml

    184 │   │   :return: Initialized Runner.
    185 │   │   """
    186 │   │   config = load_yaml_config(yaml_path)
  ❱ 187 │   │   return cls(config, project_dir=project_dir)
    188 │
    189 │   @classmethod
    190 │   def from_trial_folder(cls, trial_path: str):

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/deploy/base.py:161 in
  __init__

    158 │   │   for node_line in node_lines:
    159 │   │   │   for node in node_line["nodes"]:
    160 │   │   │   │   if len(node["modules"]) != 1:
  ❱ 161 │   │   │   │   │   raise ValueError(
    162 │   │   │   │   │   │   "The number of modules in a node must be 1 for using r
    163 │   │   │   │   │   │   "Please use extract_best_config method for extracting
    164 │   │   │   │   │   )
────────────────────────────────────────────────────────────────────────────────────────
ValueError: The number of modules in a node must be 1 for using runner.Please use
extract_best_config method for extracting yaml file from evaluated trial.
^C  Stopping...
^C
Aborted!
^C
(1) m@m:~$ autorag run_web --yaml_path config.yaml
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(


ValueError: YAML file config.yaml could not be loaded.
Traceback:
File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py", line 81, in <module>
    run_web_server()
File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py", line 1442, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py", line 1363, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py", line 1226, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py", line 794, in invoke
    return callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py", line 73, in run_web_server
    runner = get_runner(yaml_path, project_dir, trial_path)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py", line 17, in get_runner
    return Runner.from_yaml(yaml_path, project_dir=project_dir)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/deploy/base.py", line 186, in from_yaml
    config = load_yaml_config(yaml_path)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/utils/util.py", line 703, in load_yaml_config
    raise ValueError(f"YAML file {yaml_path} could not be loaded.") from exc

(base) m@m:~$ conda activate 1
(1) m@m:~$ run llama3.2:1b
Command 'run' not found, did you mean:
  command 'bun' from snap bun-js (1.2.17)
  command 'rue' from snap darkdimension-rue (1.0.7)
  command 'srun' from deb slurm-client (23.02.6-1ubuntu2)
  command 'rup' from deb rstat-client (4.0.1-11)
  command 'grun' from deb grun (0.9.3+git20200303-3)
  command 'zun' from deb python3-zunclient (4.7.0-0ubuntu1)
  command 'crun' from deb crun (1.12-1)
  command 'rn' from deb trn4 (4.0-test77-16)
  command 'runq' from deb exim4-daemon-heavy (4.97-4ubuntu4.3)
  command 'runq' from deb exim4-daemon-light (4.97-4ubuntu4.3)
  command 'runq' from deb sendmail-bin (8.17.2-1)
  command 'runc' from deb runc (1.1.12-0ubuntu3.1)
  command 'zrun' from deb moreutils (0.67-1)
See 'snap info <snapname>' for additional versions.
(1) m@m:~$ ollama list
NAME                ID              SIZE      MODIFIED
bge-m3:latest       790764642607    1.2 GB    3 weeks ago
qwen2.5:3b          357c53fb659c    1.9 GB    3 weeks ago
orca-mini:latest    2dbd9f439647    2.0 GB    4 weeks ago
llama3.2:1b         baf6a787fdff    1.3 GB    5 weeks ago
(1) m@m:~$ ano 1.yaml
Command 'ano' not found, did you mean:
  command 'ant' from snap ant (1.10.15)
  command 'nano' from snap nano (7.2+pkg-4057)
  command 'ao' from snap ao (6.9.0)
  command 'and' from deb and (1.2.2-4.2)
  command 'anno' from deb mailutils-mh (1:3.16-1build1)
  command 'anno' from deb mmh (0.4-6)
  command 'anno' from deb nmh (1.8-1)
  command 'an' from deb an (1.2-7build2)
  command 'ant' from deb ant (1.10.14-1)
  command 'nano' from deb nano (7.2-2ubuntu0.1)
See 'snap info <snapname>' for additional versions.
(1) m@m:~$ vit 1.yaml
Command 'vit' not found, but can be installed with:
sudo apt install vit
(1) m@m:~$ dir
--add-host                         New\ Text\ Document\ (2).txt  cpu_api.py    myenv
--name                             New\ Text\ Document\ (3).txt  data          simple_ollama.yaml:Zone.Identifier
-e                                 New\ Text\ Document\ (4).txt  dozerdb       src
-p                                 New\ Text\ Document.txt       erf           test_ipex.py
-v                                 __pycache__                   intel
2.py                               aaa.py                        miniconda.sh
Miniconda3-latest-Linux-x86_64.sh  config.yaml                   miniconda3
(1) m@m:~$ autorag run_web --yaml_path config.yaml
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
[06/29/25 19:45:59] INFO     [config.py:54] >> PyTorch version 2.7.1 available.                             config.py:54

  You can now view your Streamlit app in your browser.

  Local URL: http://localhost:8501
  Network URL: http://172.21.151.42:8501

gio: http://localhost:8501: Operation not supported
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
────────────────────────── Traceback (most recent call last) ───────────────────────────
  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/streamlit/runtime/scriptrunne
  r/exec_code.py:128 in exec_func_with_error_handling

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/streamlit/runtime/scriptrunne
  r/script_runner.py:669 in code_to_exec

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:81 in <module>

    78
    79
    80 if __name__ == "__main__":
  ❱ 81 │   run_web_server()
    82

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1442 in
  __call__

    1439 │
    1440 │   def __call__(self, *args: t.Any, **kwargs: t.Any) -> t.Any:
    1441 │   │   """Alias for :meth:`main`."""
  ❱ 1442 │   │   return self.main(*args, **kwargs)
    1443
    1444
    1445 class _FakeSubclassCheck(type):

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1363 in main

    1360 │   │   try:
    1361 │   │   │   try:
    1362 │   │   │   │   with self.make_context(prog_name, args, **extra) as ctx:
  ❱ 1363 │   │   │   │   │   rv = self.invoke(ctx)
    1364 │   │   │   │   │   if not standalone_mode:
    1365 │   │   │   │   │   │   return rv
    1366 │   │   │   │   │   # it's not safe to `ctx.exit(rv)` here!

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1226 in invoke

    1223 │   │   │   echo(style(message, fg="red"), err=True)
    1224 │   │
    1225 │   │   if self.callback is not None:
  ❱ 1226 │   │   │   return ctx.invoke(self.callback, **ctx.params)
    1227 │
    1228 │   def shell_complete(self, ctx: Context, incomplete: str) -> list[Completio
    1229 │   │   """Return a list of completions for the incomplete value. Looks

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:794 in invoke

     791 │   │
     792 │   │   with augment_usage_errors(self):
     793 │   │   │   with ctx:
  ❱  794 │   │   │   │   return callback(*args, **kwargs)
     795 │
     796 │   def forward(self, cmd: Command, /, *args: t.Any, **kwargs: t.Any) -> t.An
     797 │   │   """Similar to :meth:`invoke` but fills in default keyword

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:73 in
  run_web_server

    70 def run_web_server(
    71 │   yaml_path: Optional[str], project_dir: Optional[str], trial_path: Optional[
    72 ):
  ❱ 73 │   runner = get_runner(yaml_path, project_dir, trial_path)
    74 │   set_initial_state()
    75 │   set_page_config()
    76 │   set_page_header()

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:17 in
  get_runner

    14 │   elif yaml_path and trial_path:
    15 │   │   raise ValueError("yaml_path and trial_path cannot be given at the same
    16 │   elif yaml_path:
  ❱ 17 │   │   return Runner.from_yaml(yaml_path, project_dir=project_dir)
    18 │   elif trial_path:
    19 │   │   return Runner.from_trial_folder(trial_path)
    20

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/deploy/base.py:187 in
  from_yaml

    184 │   │   :return: Initialized Runner.
    185 │   │   """
    186 │   │   config = load_yaml_config(yaml_path)
  ❱ 187 │   │   return cls(config, project_dir=project_dir)
    188 │
    189 │   @classmethod
    190 │   def from_trial_folder(cls, trial_path: str):

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/deploy/base.py:161 in
  __init__

    158 │   │   for node_line in node_lines:
    159 │   │   │   for node in node_line["nodes"]:
    160 │   │   │   │   if len(node["modules"]) != 1:
  ❱ 161 │   │   │   │   │   raise ValueError(
    162 │   │   │   │   │   │   "The number of modules in a node must be 1 for using r
    163 │   │   │   │   │   │   "Please use extract_best_config method for extracting
    164 │   │   │   │   │   )
────────────────────────────────────────────────────────────────────────────────────────
ValueError: The number of modules in a node must be 1 for using runner.Please use
extract_best_config method for extracting yaml file from evaluated trial.
^C  Stopping...
^C
Aborted!
^C
(1) m@m:~$ autorag run_web --yaml_path config.yaml
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
[06/29/25 19:50:10] INFO     [config.py:54] >> PyTorch version 2.7.1 available.                             config.py:54

  You can now view your Streamlit app in your browser.

  Local URL: http://localhost:8501
  Network URL: http://172.21.151.42:8501

gio: http://localhost:8501: Operation not supported
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
────────────────────────── Traceback (most recent call last) ───────────────────────────
  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/utils/util.py:701 in
  load_yaml_config

    698 │   │   raise ValueError(f"YAML file {yaml_path} does not exist.")
    699 │   with open(yaml_path, "r", encoding="utf-8") as stream:
    700 │   │   try:
  ❱ 701 │   │   │   yaml_dict = yaml.safe_load(stream)
    702 │   │   except yaml.YAMLError as exc:
    703 │   │   │   raise ValueError(f"YAML file {yaml_path} could not be loaded.") fr
    704

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/yaml/__init__.py:125 in
  safe_load

    122 │   Resolve only basic YAML tags. This is known
    123 │   to be safe for untrusted input.
    124 │   """
  ❱ 125 │   return load(stream, SafeLoader)
    126
    127 def safe_load_all(stream):
    128 │   """

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/yaml/__init__.py:81 in load

     78 │   """
     79 │   loader = Loader(stream)
     80 │   try:
  ❱  81 │   │   return loader.get_single_data()
     82 │   finally:
     83 │   │   loader.dispose()
     84

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/yaml/constructor.py:49 in
  get_single_data

     46 │
     47 │   def get_single_data(self):
     48 │   │   # Ensure that the stream contains a single document and construct it.
  ❱  49 │   │   node = self.get_single_node()
     50 │   │   if node is not None:
     51 │   │   │   return self.construct_document(node)
     52 │   │   return None

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/yaml/composer.py:35 in
  get_single_node

     32 │   │
     33 │   │   # Compose a document if the stream is not empty.
     34 │   │   document = None
  ❱  35 │   │   if not self.check_event(StreamEndEvent):
     36 │   │   │   document = self.compose_document()
     37 │   │
     38 │   │   # Ensure that the stream contains no more documents.

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/yaml/parser.py:98 in
  check_event

     95 │   │   # Check the type of the next event.
     96 │   │   if self.current_event is None:
     97 │   │   │   if self.state:
  ❱  98 │   │   │   │   self.current_event = self.state()
     99 │   │   if self.current_event is not None:
    100 │   │   │   if not choices:
    101 │   │   │   │   return True

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/yaml/parser.py:142 in
  parse_implicit_document_start

    139 │   def parse_implicit_document_start(self):
    140 │   │
    141 │   │   # Parse an implicit document.
  ❱ 142 │   │   if not self.check_token(DirectiveToken, DocumentStartToken,
    143 │   │   │   │   StreamEndToken):
    144 │   │   │   self.tag_handles = self.DEFAULT_TAGS
    145 │   │   │   token = self.peek_token()

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/yaml/scanner.py:116 in
  check_token

     113 │   def check_token(self, *choices):
     114 │   │   # Check if the next token is one of the given types.
     115 │   │   while self.need_more_tokens():
  ❱  116 │   │   │   self.fetch_more_tokens()
     117 │   │   if self.tokens:
     118 │   │   │   if not choices:
     119 │   │   │   │   return True

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/yaml/scanner.py:177 in
  fetch_more_tokens

     174 │   │
     175 │   │   # Is it a directive?
     176 │   │   if ch == '%' and self.check_directive():
  ❱  177 │   │   │   return self.fetch_directive()
     178 │   │
     179 │   │   # Is it the document start?
     180 │   │   if ch == '-' and self.check_document_start():

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/yaml/scanner.py:400 in
  fetch_directive

     397 │   │   self.allow_simple_key = False
     398 │   │
     399 │   │   # Scan and add DIRECTIVE.
  ❱  400 │   │   self.tokens.append(self.scan_directive())
     401 │
     402 │   def fetch_document_start(self):
     403 │   │   self.fetch_document_indicator(DocumentStartToken)

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/yaml/scanner.py:791 in
  scan_directive

     788 │   │   # See the specification for details.
     789 │   │   start_mark = self.get_mark()
     790 │   │   self.forward()
  ❱  791 │   │   name = self.scan_directive_name(start_mark)
     792 │   │   value = None
     793 │   │   if name == 'YAML':
     794 │   │   │   value = self.scan_yaml_directive_value(start_mark)

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/yaml/scanner.py:815 in
  scan_directive_name

     812 │   │   │   length += 1
     813 │   │   │   ch = self.peek(length)
     814 │   │   if not length:
  ❱  815 │   │   │   raise ScannerError("while scanning a directive", start_mark,
     816 │   │   │   │   │   "expected alphabetic or numeric character, but found %r"
     817 │   │   │   │   │   % ch, self.get_mark())
     818 │   │   value = self.prefix(length)
────────────────────────────────────────────────────────────────────────────────────────
ScannerError: while scanning a directive
  in "config.yaml", line 2, column 1
expected alphabetic or numeric character, but found '%'
  in "config.yaml", line 2, column 2

The above exception was the direct cause of the following exception:

────────────────────────── Traceback (most recent call last) ───────────────────────────
  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/streamlit/runtime/scriptrunne
  r/exec_code.py:128 in exec_func_with_error_handling

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/streamlit/runtime/scriptrunne
  r/script_runner.py:669 in code_to_exec

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:81 in <module>

    78
    79
    80 if __name__ == "__main__":
  ❱ 81 │   run_web_server()
    82

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1442 in
  __call__

    1439 │
    1440 │   def __call__(self, *args: t.Any, **kwargs: t.Any) -> t.Any:
    1441 │   │   """Alias for :meth:`main`."""
  ❱ 1442 │   │   return self.main(*args, **kwargs)
    1443
    1444
    1445 class _FakeSubclassCheck(type):

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1363 in main

    1360 │   │   try:
    1361 │   │   │   try:
    1362 │   │   │   │   with self.make_context(prog_name, args, **extra) as ctx:
  ❱ 1363 │   │   │   │   │   rv = self.invoke(ctx)
    1364 │   │   │   │   │   if not standalone_mode:
    1365 │   │   │   │   │   │   return rv
    1366 │   │   │   │   │   # it's not safe to `ctx.exit(rv)` here!

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1226 in invoke

    1223 │   │   │   echo(style(message, fg="red"), err=True)
    1224 │   │
    1225 │   │   if self.callback is not None:
  ❱ 1226 │   │   │   return ctx.invoke(self.callback, **ctx.params)
    1227 │
    1228 │   def shell_complete(self, ctx: Context, incomplete: str) -> list[Completio
    1229 │   │   """Return a list of completions for the incomplete value. Looks

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:794 in invoke

     791 │   │
     792 │   │   with augment_usage_errors(self):
     793 │   │   │   with ctx:
  ❱  794 │   │   │   │   return callback(*args, **kwargs)
     795 │
     796 │   def forward(self, cmd: Command, /, *args: t.Any, **kwargs: t.Any) -> t.An
     797 │   │   """Similar to :meth:`invoke` but fills in default keyword

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:73 in
  run_web_server

    70 def run_web_server(
    71 │   yaml_path: Optional[str], project_dir: Optional[str], trial_path: Optional[
    72 ):
  ❱ 73 │   runner = get_runner(yaml_path, project_dir, trial_path)
    74 │   set_initial_state()
    75 │   set_page_config()
    76 │   set_page_header()

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:17 in
  get_runner

    14 │   elif yaml_path and trial_path:
    15 │   │   raise ValueError("yaml_path and trial_path cannot be given at the same
    16 │   elif yaml_path:
  ❱ 17 │   │   return Runner.from_yaml(yaml_path, project_dir=project_dir)
    18 │   elif trial_path:
    19 │   │   return Runner.from_trial_folder(trial_path)
    20

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/deploy/base.py:186 in
  from_yaml

    183 │   │   │   Default is the current directory.
    184 │   │   :return: Initialized Runner.
    185 │   │   """
  ❱ 186 │   │   config = load_yaml_config(yaml_path)
    187 │   │   return cls(config, project_dir=project_dir)
    188 │
    189 │   @classmethod

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/utils/util.py:703 in
  load_yaml_config

    700 │   │   try:
    701 │   │   │   yaml_dict = yaml.safe_load(stream)
    702 │   │   except yaml.YAMLError as exc:
  ❱ 703 │   │   │   raise ValueError(f"YAML file {yaml_path} could not be loaded.") fr
    704 │
    705 │   yaml_dict = convert_string_to_tuple_in_dict(yaml_dict)
    706 │   yaml_dict = convert_env_in_dict(yaml_dict)
────────────────────────────────────────────────────────────────────────────────────────
ValueError: YAML file config.yaml could not be loaded.
^C  Stopping...
^C
Aborted!
(1) m@m:~$ dir
--add-host                         New\ Text\ Document\ (2).txt  cpu_api.py    myenv
--name                             New\ Text\ Document\ (3).txt  data          simple_ollama.yaml:Zone.Identifier
-e                                 New\ Text\ Document\ (4).txt  dozerdb       src
-p                                 New\ Text\ Document.txt       erf           test_ipex.py
-v                                 __pycache__                   intel
2.py                               aaa.py                        miniconda.sh
Miniconda3-latest-Linux-x86_64.sh  config.yaml                   miniconda3
(1) m@m:~$ autorag run_web --yaml_path ./config.yaml
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
[06/29/25 19:55:18] INFO     [config.py:54] >> PyTorch version 2.7.1 available.                             config.py:54

  You can now view your Streamlit app in your browser.

  Local URL: http://localhost:8501
  Network URL: http://172.21.151.42:8501

gio: http://localhost:8501: Operation not supported
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
────────────────────────── Traceback (most recent call last) ───────────────────────────
  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/utils/util.py:701 in
  load_yaml_config

    698 │   │   raise ValueError(f"YAML file {yaml_path} does not exist.")
    699 │   with open(yaml_path, "r", encoding="utf-8") as stream:
    700 │   │   try:
  ❱ 701 │   │   │   yaml_dict = yaml.safe_load(stream)
    702 │   │   except yaml.YAMLError as exc:
    703 │   │   │   raise ValueError(f"YAML file {yaml_path} could not be loaded.") fr
    704

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/yaml/__init__.py:125 in
  safe_load

    122 │   Resolve only basic YAML tags. This is known
    123 │   to be safe for untrusted input.
    124 │   """
  ❱ 125 │   return load(stream, SafeLoader)
    126
    127 def safe_load_all(stream):
    128 │   """

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/yaml/__init__.py:81 in load

     78 │   """
     79 │   loader = Loader(stream)
     80 │   try:
  ❱  81 │   │   return loader.get_single_data()
     82 │   finally:
     83 │   │   loader.dispose()
     84

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/yaml/constructor.py:49 in
  get_single_data

     46 │
     47 │   def get_single_data(self):
     48 │   │   # Ensure that the stream contains a single document and construct it.
  ❱  49 │   │   node = self.get_single_node()
     50 │   │   if node is not None:
     51 │   │   │   return self.construct_document(node)
     52 │   │   return None

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/yaml/composer.py:35 in
  get_single_node

     32 │   │
     33 │   │   # Compose a document if the stream is not empty.
     34 │   │   document = None
  ❱  35 │   │   if not self.check_event(StreamEndEvent):
     36 │   │   │   document = self.compose_document()
     37 │   │
     38 │   │   # Ensure that the stream contains no more documents.

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/yaml/parser.py:98 in
  check_event

     95 │   │   # Check the type of the next event.
     96 │   │   if self.current_event is None:
     97 │   │   │   if self.state:
  ❱  98 │   │   │   │   self.current_event = self.state()
     99 │   │   if self.current_event is not None:
    100 │   │   │   if not choices:
    101 │   │   │   │   return True

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/yaml/parser.py:142 in
  parse_implicit_document_start

    139 │   def parse_implicit_document_start(self):
    140 │   │
    141 │   │   # Parse an implicit document.
  ❱ 142 │   │   if not self.check_token(DirectiveToken, DocumentStartToken,
    143 │   │   │   │   StreamEndToken):
    144 │   │   │   self.tag_handles = self.DEFAULT_TAGS
    145 │   │   │   token = self.peek_token()

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/yaml/scanner.py:116 in
  check_token

     113 │   def check_token(self, *choices):
     114 │   │   # Check if the next token is one of the given types.
     115 │   │   while self.need_more_tokens():
  ❱  116 │   │   │   self.fetch_more_tokens()
     117 │   │   if self.tokens:
     118 │   │   │   if not choices:
     119 │   │   │   │   return True

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/yaml/scanner.py:177 in
  fetch_more_tokens

     174 │   │
     175 │   │   # Is it a directive?
     176 │   │   if ch == '%' and self.check_directive():
  ❱  177 │   │   │   return self.fetch_directive()
     178 │   │
     179 │   │   # Is it the document start?
     180 │   │   if ch == '-' and self.check_document_start():

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/yaml/scanner.py:400 in
  fetch_directive

     397 │   │   self.allow_simple_key = False
     398 │   │
     399 │   │   # Scan and add DIRECTIVE.
  ❱  400 │   │   self.tokens.append(self.scan_directive())
     401 │
     402 │   def fetch_document_start(self):
     403 │   │   self.fetch_document_indicator(DocumentStartToken)

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/yaml/scanner.py:791 in
  scan_directive

     788 │   │   # See the specification for details.
     789 │   │   start_mark = self.get_mark()
     790 │   │   self.forward()
  ❱  791 │   │   name = self.scan_directive_name(start_mark)
     792 │   │   value = None
     793 │   │   if name == 'YAML':
     794 │   │   │   value = self.scan_yaml_directive_value(start_mark)

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/yaml/scanner.py:815 in
  scan_directive_name

     812 │   │   │   length += 1
     813 │   │   │   ch = self.peek(length)
     814 │   │   if not length:
  ❱  815 │   │   │   raise ScannerError("while scanning a directive", start_mark,
     816 │   │   │   │   │   "expected alphabetic or numeric character, but found %r"
     817 │   │   │   │   │   % ch, self.get_mark())
     818 │   │   value = self.prefix(length)
────────────────────────────────────────────────────────────────────────────────────────
ScannerError: while scanning a directive
  in "config.yaml", line 2, column 1
expected alphabetic or numeric character, but found '%'
  in "config.yaml", line 2, column 2

The above exception was the direct cause of the following exception:

────────────────────────── Traceback (most recent call last) ───────────────────────────
  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/streamlit/runtime/scriptrunne
  r/exec_code.py:128 in exec_func_with_error_handling

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/streamlit/runtime/scriptrunne
  r/script_runner.py:669 in code_to_exec

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:81 in <module>

    78
    79
    80 if __name__ == "__main__":
  ❱ 81 │   run_web_server()
    82

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1442 in
  __call__

    1439 │
    1440 │   def __call__(self, *args: t.Any, **kwargs: t.Any) -> t.Any:
    1441 │   │   """Alias for :meth:`main`."""
  ❱ 1442 │   │   return self.main(*args, **kwargs)
    1443
    1444
    1445 class _FakeSubclassCheck(type):

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1363 in main

    1360 │   │   try:
    1361 │   │   │   try:
    1362 │   │   │   │   with self.make_context(prog_name, args, **extra) as ctx:
  ❱ 1363 │   │   │   │   │   rv = self.invoke(ctx)
    1364 │   │   │   │   │   if not standalone_mode:
    1365 │   │   │   │   │   │   return rv
    1366 │   │   │   │   │   # it's not safe to `ctx.exit(rv)` here!

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1226 in invoke

    1223 │   │   │   echo(style(message, fg="red"), err=True)
    1224 │   │
    1225 │   │   if self.callback is not None:
  ❱ 1226 │   │   │   return ctx.invoke(self.callback, **ctx.params)
    1227 │
    1228 │   def shell_complete(self, ctx: Context, incomplete: str) -> list[Completio
    1229 │   │   """Return a list of completions for the incomplete value. Looks

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:794 in invoke

     791 │   │
     792 │   │   with augment_usage_errors(self):
     793 │   │   │   with ctx:
  ❱  794 │   │   │   │   return callback(*args, **kwargs)
     795 │
     796 │   def forward(self, cmd: Command, /, *args: t.Any, **kwargs: t.Any) -> t.An
     797 │   │   """Similar to :meth:`invoke` but fills in default keyword

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:73 in
  run_web_server

    70 def run_web_server(
    71 │   yaml_path: Optional[str], project_dir: Optional[str], trial_path: Optional[
    72 ):
  ❱ 73 │   runner = get_runner(yaml_path, project_dir, trial_path)
    74 │   set_initial_state()
    75 │   set_page_config()
    76 │   set_page_header()

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:17 in
  get_runner

    14 │   elif yaml_path and trial_path:
    15 │   │   raise ValueError("yaml_path and trial_path cannot be given at the same
    16 │   elif yaml_path:
  ❱ 17 │   │   return Runner.from_yaml(yaml_path, project_dir=project_dir)
    18 │   elif trial_path:
    19 │   │   return Runner.from_trial_folder(trial_path)
    20

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/deploy/base.py:186 in
  from_yaml

    183 │   │   │   Default is the current directory.
    184 │   │   :return: Initialized Runner.
    185 │   │   """
  ❱ 186 │   │   config = load_yaml_config(yaml_path)
    187 │   │   return cls(config, project_dir=project_dir)
    188 │
    189 │   @classmethod

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/utils/util.py:703 in
  load_yaml_config

    700 │   │   try:
    701 │   │   │   yaml_dict = yaml.safe_load(stream)
    702 │   │   except yaml.YAMLError as exc:
  ❱ 703 │   │   │   raise ValueError(f"YAML file {yaml_path} could not be loaded.") fr
    704 │
    705 │   yaml_dict = convert_string_to_tuple_in_dict(yaml_dict)
    706 │   yaml_dict = convert_env_in_dict(yaml_dict)
────────────────────────────────────────────────────────────────────────────────────────
ValueError: YAML file config.yaml could not be loaded.

























http://localhost:8501/


ValueError: YAML file config.yaml could not be loaded.
Traceback:
File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py", line 81, in <module>
    run_web_server()
File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py", line 1442, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py", line 1363, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py", line 1226, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py", line 794, in invoke
    return callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py", line 73, in run_web_server
    runner = get_runner(yaml_path, project_dir, trial_path)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py", line 17, in get_runner
    return Runner.from_yaml(yaml_path, project_dir=project_dir)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/deploy/base.py", line 186, in from_yaml
    config = load_yaml_config(yaml_path)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/utils/util.py", line 703, in load_yaml_config
    raise ValueError(f"YAML file {yaml_path} could not be loaded.") from exc

project_dir: Optional[str], trial_path: Optional[
    72 ):
  ❱ 73 │   runner = get_runner(yaml_path, project_dir, trial_path)
    74 │   set_initial_state()
    75 │   set_page_config()
    76 │   set_page_header()

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:17 in
  get_runner

    14 │   elif yaml_path and trial_path:
    15 │   │   raise ValueError("yaml_path and trial_path cannot be given at the same
    16 │   elif yaml_path:
  ❱ 17 │   │   return Runner.from_yaml(yaml_path, project_dir=project_dir)
    18 │   elif trial_path:
    19 │   │   return Runner.from_trial_folder(trial_path)
    20

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/deploy/base.py:187 in
  from_yaml

    184 │   │   :return: Initialized Runner.
    185 │   │   """
    186 │   │   config = load_yaml_config(yaml_path)
  ❱ 187 │   │   return cls(config, project_dir=project_dir)
    188 │
    189 │   @classmethod
    190 │   def from_trial_folder(cls, trial_path: str):

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/deploy/base.py:168 in
  __init__

    165 │   │   │   │   module = node["modules"][0]
    166 │   │   │   │   module_type = module.pop("module_type")
    167 │   │   │   │   module_params = module
  ❱ 168 │   │   │   │   module_instance = get_support_modules(module_type)(
    169 │   │   │   │   │   project_dir=project_dir,
    170 │   │   │   │   │   **module_params,
    171 │   │   │   │   )

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/nodes/retrieval/vecto
  rdb.py:56 in __init__

     53 │   │   super().__init__(project_dir)
     54 │   │
     55 │   │   vectordb_config_path = os.path.join(self.resources_dir, "vectordb.yaml
  ❱  56 │   │   self.vector_store = load_vectordb_from_yaml(
     57 │   │   │   vectordb_config_path, vectordb, project_dir
     58 │   │   )
     59

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/vectordb/__init__.py:
  33 in load_vectordb_from_yaml

    30
    31
    32 def load_vectordb_from_yaml(yaml_path: str, vectordb_name: str, project_dir: st
  ❱ 33 │   config_dict = load_yaml_config(yaml_path)
    34 │   vectordb_list = config_dict.get("vectordb", [])
    35 │   if len(vectordb_list) == 0 or vectordb_name == "default":
    36 │   │   chroma_path = os.path.join(project_dir, "resources", "chroma")

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/utils/util.py:698 in
  load_yaml_config

    695 │   :return: The loaded configuration dictionary.
    696 │   """
    697 │   if not os.path.exists(yaml_path):
  ❱ 698 │   │   raise ValueError(f"YAML file {yaml_path} does not exist.")
    699 │   with open(yaml_path, "r", encoding="utf-8") as stream:
    700 │   │   try:
    701 │   │   │   yaml_dict = yaml.safe_load(stream)
────────────────────────────────────────────────────────────────────────────────────────
ValueError: YAML file project_dir/resources/vectordb.yaml does not exist.
 autorag run_web --yaml_path config.yaml --project_dir ./project_dir
^C  Stopping...
^C
Aborted!
(1) m@m:~$ autorag run_web --yaml_path config.yaml --project_dir ./project_dir
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
[06/29/25 20:27:31] INFO     [config.py:54] >> PyTorch version 2.7.1 available.                                                                  config.py:54
  You can now view your Streamlit app in your browser.

  Local URL: http://localhost:8501
  Network URL: http://172.21.151.42:8501

gio: http://localhost:8501: Operation not supported
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
[06/29/25 20:27:56] INFO     [config.py:54] >> PyTorch version 2.7.1 available.                                                                  config.py:54[06/29/25 20:27:58] INFO     [base.py:18] >> Initialize retrieval node - VectorDB                                                                  base.py:18[06/29/25 20:27:59] INFO     [SentenceTransformer.py:219] >> Load pretrained SentenceTransformer:                                  SentenceTransformer.py:219                             sentence-transformers/all-mpnet-base-v2
modules.json: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████| 349/349 [00:00<00:00, 1.28MB/s]config_sentence_transformers.json: 100%|█████████████████████████████████████████████████████████████████████████████████████| 116/116 [00:00<00:00, 451kB/s]README.md: 10.4kB [00:00, 16.5MB/s]
sentence_bert_config.json: 100%|███████████████████████████████████████████████████████████████████████████████████████████| 53.0/53.0 [00:00<00:00, 211kB/s]config.json: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████| 571/571 [00:00<00:00, 2.06MB/s]model.safetensors:   0%|                      model.safetensors:   8%|███████▉                                                                                        model.safetensors:  23%|██████████████████████▉                                                                         model.safetensors:  23%|██████████████████████▉                                                                         model.safetensors:  39%|█████████████████████████████████████▉                                                          model.safetensors:  54%|████████████████████████████████████████████████████▉                                           model.safetensors:  69%|███████████████████████████████████████████████████████████████████▉                            model.safetensors:  85%|██████████████████████████████████████████████████████████████████████████████████▉             model.safetensors: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████| 438M/438M [01:57<00:00, 3.72MB/s]
tokenizer_config.json: 100%|███████████████████████████████████████████████████████████| 363/363 [00:00<00:00, 1.65MB/s]vocab.txt: 232kB [00:00, 3.54MB/s]
tokenizer.json: 466kB [00:00, 5.32MB/s]
special_tokens_map.json: 100%|█████████████████████████████████████████████████████████| 239/239 [00:00<00:00, 1.12MB/s]config.json: 100%|█████████████████████████████████████████████████████████████████████| 190/190 [00:00<00:00, 1.79MB/s][06/29/25 20:30:06] INFO     [SentenceTransformer.py:358] >> 2 prompts are loaded, with the   SentenceTransformer.py:358                             keys: ['query', 'text']
                    INFO     [posthog.py:22] >> Anonymized telemetry enabled. See                          posthog.py:22                             https://docs.trychroma.com/telemetry for more information.
                    ERROR    [posthog.py:61] >> Failed to send telemetry event ClientStartEvent: capture() posthog.py:61                             takes 1 positional argument but 3 were given
                    ERROR    [posthog.py:61] >> Failed to send telemetry event                             posthog.py:61                             ClientCreateCollectionEvent: capture() takes 1 positional argument but 3 were
                             given
                    INFO     [base.py:15] >> Initialize prompt maker node - Fstring module...                 base.py:15                    INFO     [base.py:19] >> Initialize generator node - LlamaIndexLLM                        base.py:19[06/29/25 20:30:29] INFO     [base.py:18] >> Initialize retrieval node - VectorDB                             base.py:18                    ERROR    [posthog.py:61] >> Failed to send telemetry event ClientStartEvent: capture() posthog.py:61                             takes 1 positional argument but 3 were given
                    ERROR    [posthog.py:61] >> Failed to send telemetry event                             posthog.py:61                             ClientCreateCollectionEvent: capture() takes 1 positional argument but 3 were
                             given
                    INFO     [base.py:15] >> Initialize prompt maker node - Fstring module...                 base.py:15                    INFO     [base.py:19] >> Initialize generator node - LlamaIndexLLM                        base.py:19                    INFO     [base.py:31] >> Running retrieval node - VectorDB module...                      base.py:31────────────────────────── Traceback (most recent call last) ───────────────────────────
  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/streamlit/runtime/scriptrunne
  r/exec_code.py:128 in exec_func_with_error_handling

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/streamlit/runtime/scriptrunne
  r/script_runner.py:669 in code_to_exec

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:81 in <module>

    78
    79
    80 if __name__ == "__main__":
  ❱ 81 │   run_web_server()
    82

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1442 in
  __call__

    1439 │
    1440 │   def __call__(self, *args: t.Any, **kwargs: t.Any) -> t.Any:
    1441 │   │   """Alias for :meth:`main`."""
  ❱ 1442 │   │   return self.main(*args, **kwargs)
    1443
    1444
    1445 class _FakeSubclassCheck(type):

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1363 in main

    1360 │   │   try:
    1361 │   │   │   try:
    1362 │   │   │   │   with self.make_context(prog_name, args, **extra) as ctx:
  ❱ 1363 │   │   │   │   │   rv = self.invoke(ctx)
    1364 │   │   │   │   │   if not standalone_mode:
    1365 │   │   │   │   │   │   return rv
    1366 │   │   │   │   │   # it's not safe to `ctx.exit(rv)` here!

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1226 in invoke

    1223 │   │   │   echo(style(message, fg="red"), err=True)
    1224 │   │
    1225 │   │   if self.callback is not None:
  ❱ 1226 │   │   │   return ctx.invoke(self.callback, **ctx.params)
    1227 │
    1228 │   def shell_complete(self, ctx: Context, incomplete: str) -> list[Completio
    1229 │   │   """Return a list of completions for the incomplete value. Looks

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:794 in invoke

     791 │   │
     792 │   │   with augment_usage_errors(self):
     793 │   │   │   with ctx:
  ❱  794 │   │   │   │   return callback(*args, **kwargs)
     795 │
     796 │   def forward(self, cmd: Command, /, *args: t.Any, **kwargs: t.Any) -> t.An
     797 │   │   """Similar to :meth:`invoke` but fills in default keyword

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:77 in
  run_web_server

    74 │   set_initial_state()
    75 │   set_page_config()
    76 │   set_page_header()
  ❱ 77 │   chat_box(runner)
    78
    79
    80 if __name__ == "__main__":

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:60 in chat_box

    57 │   │   # Generate llama-index stream with user input
    58 │   │   with st.chat_message("assistant"):
    59 │   │   │   with st.spinner("Processing..."):
  ❱ 60 │   │   │   │   response = st.write(runner.run(query))
    61 │   │
    62 │   │   # Add the final response to messages state
    63 │   │   st.session_state["messages"].append({"role": "assistant", "content": re

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/deploy/base.py:226 in
  run

    223 │   │   for module_instance, module_param in zip(
    224 │   │   │   self.module_instances, self.module_params
    225 │   │   ):
  ❱ 226 │   │   │   new_result = module_instance.pure(
    227 │   │   │   │   previous_result=previous_result, **module_param
    228 │   │   │   )
    229 │   │   │   duplicated_columns = previous_result.columns.intersection(

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/utils/util.py:72 in
  wrapper

     69 │   def decorator_result_to_dataframe(func: Callable):
     70 │   │   @functools.wraps(func)
     71 │   │   def wrapper(*args, **kwargs) -> pd.DataFrame:
  ❱  72 │   │   │   results = func(*args, **kwargs)
     73 │   │   │   if len(column_names) == 1:
     74 │   │   │   │   df_input = {column_names[0]: results}
     75 │   │   │   else:

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/nodes/retrieval/vecto
  rdb.py:72 in pure

     69 │   def pure(self, previous_result: pd.DataFrame, *args, **kwargs):
     70 │   │   queries = self.cast_to_run(previous_result)
     71 │   │   pure_params = pop_params(self._pure, kwargs)
  ❱  72 │   │   ids, scores = self._pure(queries, **pure_params)
     73 │   │   contents = fetch_contents(self.corpus_df, ids)
     74 │   │   return contents, ids, scores
     75
────────────────────────────────────────────────────────────────────────────────────────
TypeError: VectorDB._pure() missing 1 required positional argument: 'top_k'
^C  Stopping...
^C
Aborted!
^C
(1) m@m:~$ ^C
(1) m@m:~$ nano config.yaml
(1) m@m:~$ autorag run_web --yaml_path config.yaml --project_dir ./project_dir
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
[06/29/25 20:33:45] INFO     [config.py:54] >> PyTorch version 2.7.1 available.                             config.py:54
  You can now view your Streamlit app in your browser.

  Local URL: http://localhost:8501
  Network URL: http://172.21.151.42:8501

gio: http://localhost:8501: Operation not supported
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
[06/29/25 20:34:09] INFO     [config.py:54] >> PyTorch version 2.7.1 available.                             config.py:54[06/29/25 20:34:11] INFO     [base.py:18] >> Initialize retrieval node - VectorDB                             base.py:18[06/29/25 20:34:12] INFO     [SentenceTransformer.py:219] >> Load pretrained                  SentenceTransformer.py:219                             SentenceTransformer: sentence-transformers/all-mpnet-base-v2
[06/29/25 20:34:16] INFO     [SentenceTransformer.py:358] >> 2 prompts are loaded, with the   SentenceTransformer.py:358                             keys: ['query', 'text']
                    INFO     [posthog.py:22] >> Anonymized telemetry enabled. See                          posthog.py:22                             https://docs.trychroma.com/telemetry for more information.
                    ERROR    [posthog.py:61] >> Failed to send telemetry event ClientStartEvent: capture() posthog.py:61                             takes 1 positional argument but 3 were given
                    ERROR    [posthog.py:61] >> Failed to send telemetry event                             posthog.py:61                             ClientCreateCollectionEvent: capture() takes 1 positional argument but 3 were
                             given
                    INFO     [base.py:15] >> Initialize prompt maker node - Fstring module...                 base.py:15                    INFO     [base.py:19] >> Initialize generator node - LlamaIndexLLM                        base.py:19[06/29/25 20:34:26] INFO     [base.py:18] >> Initialize retrieval node - VectorDB                             base.py:18                    ERROR    [posthog.py:61] >> Failed to send telemetry event ClientStartEvent: capture() posthog.py:61                             takes 1 positional argument but 3 were given
                    ERROR    [posthog.py:61] >> Failed to send telemetry event                             posthog.py:61                             ClientCreateCollectionEvent: capture() takes 1 positional argument but 3 were
                             given
                    INFO     [base.py:15] >> Initialize prompt maker node - Fstring module...                 base.py:15                    INFO     [base.py:19] >> Initialize generator node - LlamaIndexLLM                        base.py:19                    INFO     [base.py:31] >> Running retrieval node - VectorDB module...                      base.py:31────────────────────────── Traceback (most recent call last) ───────────────────────────
  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/streamlit/runtime/scriptrunne
  r/exec_code.py:128 in exec_func_with_error_handling

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/streamlit/runtime/scriptrunne
  r/script_runner.py:669 in code_to_exec

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:81 in <module>

    78
    79
    80 if __name__ == "__main__":
  ❱ 81 │   run_web_server()
    82

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1442 in
  __call__

    1439 │
    1440 │   def __call__(self, *args: t.Any, **kwargs: t.Any) -> t.Any:
    1441 │   │   """Alias for :meth:`main`."""
  ❱ 1442 │   │   return self.main(*args, **kwargs)
    1443
    1444
    1445 class _FakeSubclassCheck(type):

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1363 in main

    1360 │   │   try:
    1361 │   │   │   try:
    1362 │   │   │   │   with self.make_context(prog_name, args, **extra) as ctx:
  ❱ 1363 │   │   │   │   │   rv = self.invoke(ctx)
    1364 │   │   │   │   │   if not standalone_mode:
    1365 │   │   │   │   │   │   return rv
    1366 │   │   │   │   │   # it's not safe to `ctx.exit(rv)` here!

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1226 in invoke

    1223 │   │   │   echo(style(message, fg="red"), err=True)
    1224 │   │
    1225 │   │   if self.callback is not None:
  ❱ 1226 │   │   │   return ctx.invoke(self.callback, **ctx.params)
    1227 │
    1228 │   def shell_complete(self, ctx: Context, incomplete: str) -> list[Completio
    1229 │   │   """Return a list of completions for the incomplete value. Looks

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:794 in invoke

     791 │   │
     792 │   │   with augment_usage_errors(self):
     793 │   │   │   with ctx:
  ❱  794 │   │   │   │   return callback(*args, **kwargs)
     795 │
     796 │   def forward(self, cmd: Command, /, *args: t.Any, **kwargs: t.Any) -> t.An
     797 │   │   """Similar to :meth:`invoke` but fills in default keyword

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:77 in
  run_web_server

    74 │   set_initial_state()
    75 │   set_page_config()
    76 │   set_page_header()
  ❱ 77 │   chat_box(runner)
    78
    79
    80 if __name__ == "__main__":

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:60 in chat_box

    57 │   │   # Generate llama-index stream with user input
    58 │   │   with st.chat_message("assistant"):
    59 │   │   │   with st.spinner("Processing..."):
  ❱ 60 │   │   │   │   response = st.write(runner.run(query))
    61 │   │
    62 │   │   # Add the final response to messages state
    63 │   │   st.session_state["messages"].append({"role": "assistant", "content": re

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/deploy/base.py:226 in
  run

    223 │   │   for module_instance, module_param in zip(
    224 │   │   │   self.module_instances, self.module_params
    225 │   │   ):
  ❱ 226 │   │   │   new_result = module_instance.pure(
    227 │   │   │   │   previous_result=previous_result, **module_param
    228 │   │   │   )
    229 │   │   │   duplicated_columns = previous_result.columns.intersection(

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/utils/util.py:72 in
  wrapper

     69 │   def decorator_result_to_dataframe(func: Callable):
     70 │   │   @functools.wraps(func)
     71 │   │   def wrapper(*args, **kwargs) -> pd.DataFrame:
  ❱  72 │   │   │   results = func(*args, **kwargs)
     73 │   │   │   if len(column_names) == 1:
     74 │   │   │   │   df_input = {column_names[0]: results}
     75 │   │   │   else:

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/nodes/retrieval/vecto
  rdb.py:72 in pure

     69 │   def pure(self, previous_result: pd.DataFrame, *args, **kwargs):
     70 │   │   queries = self.cast_to_run(previous_result)
     71 │   │   pure_params = pop_params(self._pure, kwargs)
  ❱  72 │   │   ids, scores = self._pure(queries, **pure_params)
     73 │   │   contents = fetch_contents(self.corpus_df, ids)
     74 │   │   return contents, ids, scores
     75
────────────────────────────────────────────────────────────────────────────────────────
TypeError: VectorDB._pure() missing 1 required positional argument: 'top_k'
^C  Stopping...
^C
Aborted!
^C
(1) m@m:~$ autorag run_web --yaml_path config.yaml --project_dir ./project_dir

/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
[06/29/25 20:37:29] INFO     [config.py:54] >> PyTorch version 2.7.1 available.                             config.py:54
  You can now view your Streamlit app in your browser.

  Local URL: http://localhost:8501
  Network URL: http://172.21.151.42:8501

gio: http://localhost:8501: Operation not supported
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
[06/29/25 20:37:53] INFO     [config.py:54] >> PyTorch version 2.7.1 available.                             config.py:54[06/29/25 20:37:55] INFO     [base.py:18] >> Initialize retrieval node - VectorDB                             base.py:18[06/29/25 20:37:56] INFO     [SentenceTransformer.py:219] >> Load pretrained                  SentenceTransformer.py:219                             SentenceTransformer: sentence-transformers/all-mpnet-base-v2
[06/29/25 20:38:00] INFO     [SentenceTransformer.py:358] >> 2 prompts are loaded, with the   SentenceTransformer.py:358                             keys: ['query', 'text']
                    INFO     [posthog.py:22] >> Anonymized telemetry enabled. See                          posthog.py:22                             https://docs.trychroma.com/telemetry for more information.
                    ERROR    [posthog.py:61] >> Failed to send telemetry event ClientStartEvent: capture() posthog.py:61                             takes 1 positional argument but 3 were given
                    ERROR    [posthog.py:61] >> Failed to send telemetry event                             posthog.py:61                             ClientCreateCollectionEvent: capture() takes 1 positional argument but 3 were
                             given
                    INFO     [base.py:15] >> Initialize prompt maker node - Fstring module...                 base.py:15                    INFO     [base.py:19] >> Initialize generator node - LlamaIndexLLM                        base.py:19[06/29/25 20:39:09] INFO     [base.py:18] >> Initialize retrieval node - VectorDB                             base.py:18                    ERROR    [posthog.py:61] >> Failed to send telemetry event ClientStartEvent: capture() posthog.py:61                             takes 1 positional argument but 3 were given
                    ERROR    [posthog.py:61] >> Failed to send telemetry event                             posthog.py:61                             ClientCreateCollectionEvent: capture() takes 1 positional argument but 3 were
                             given
                    INFO     [base.py:15] >> Initialize prompt maker node - Fstring module...                 base.py:15                    INFO     [base.py:19] >> Initialize generator node - LlamaIndexLLM                        base.py:19                    INFO     [base.py:31] >> Running retrieval node - VectorDB module...                      base.py:31[06/29/25 20:39:11] ERROR    [posthog.py:61] >> Failed to send telemetry event CollectionQueryEvent:       posthog.py:61                             capture() takes 1 positional argument but 3 were given
────────────────────────── Traceback (most recent call last) ───────────────────────────
  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/streamlit/runtime/scriptrunne
  r/exec_code.py:128 in exec_func_with_error_handling

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/streamlit/runtime/scriptrunne
  r/script_runner.py:669 in code_to_exec

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:81 in <module>

    78
    79
    80 if __name__ == "__main__":
  ❱ 81 │   run_web_server()
    82

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1442 in
  __call__

    1439 │
    1440 │   def __call__(self, *args: t.Any, **kwargs: t.Any) -> t.Any:
    1441 │   │   """Alias for :meth:`main`."""
  ❱ 1442 │   │   return self.main(*args, **kwargs)
    1443
    1444
    1445 class _FakeSubclassCheck(type):

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1363 in main

    1360 │   │   try:
    1361 │   │   │   try:
    1362 │   │   │   │   with self.make_context(prog_name, args, **extra) as ctx:
  ❱ 1363 │   │   │   │   │   rv = self.invoke(ctx)
    1364 │   │   │   │   │   if not standalone_mode:
    1365 │   │   │   │   │   │   return rv
    1366 │   │   │   │   │   # it's not safe to `ctx.exit(rv)` here!

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1226 in invoke

    1223 │   │   │   echo(style(message, fg="red"), err=True)
    1224 │   │
    1225 │   │   if self.callback is not None:
  ❱ 1226 │   │   │   return ctx.invoke(self.callback, **ctx.params)
    1227 │
    1228 │   def shell_complete(self, ctx: Context, incomplete: str) -> list[Completio
    1229 │   │   """Return a list of completions for the incomplete value. Looks

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:794 in invoke

     791 │   │
     792 │   │   with augment_usage_errors(self):
     793 │   │   │   with ctx:
  ❱  794 │   │   │   │   return callback(*args, **kwargs)
     795 │
     796 │   def forward(self, cmd: Command, /, *args: t.Any, **kwargs: t.Any) -> t.An
     797 │   │   """Similar to :meth:`invoke` but fills in default keyword

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:77 in
  run_web_server

    74 │   set_initial_state()
    75 │   set_page_config()
    76 │   set_page_header()
  ❱ 77 │   chat_box(runner)
    78
    79
    80 if __name__ == "__main__":

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:60 in chat_box

    57 │   │   # Generate llama-index stream with user input
    58 │   │   with st.chat_message("assistant"):
    59 │   │   │   with st.spinner("Processing..."):
  ❱ 60 │   │   │   │   response = st.write(runner.run(query))
    61 │   │
    62 │   │   # Add the final response to messages state
    63 │   │   st.session_state["messages"].append({"role": "assistant", "content": re

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/deploy/base.py:226 in
  run

    223 │   │   for module_instance, module_param in zip(
    224 │   │   │   self.module_instances, self.module_params
    225 │   │   ):
  ❱ 226 │   │   │   new_result = module_instance.pure(
    227 │   │   │   │   previous_result=previous_result, **module_param
    228 │   │   │   )
    229 │   │   │   duplicated_columns = previous_result.columns.intersection(

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/utils/util.py:72 in
  wrapper

     69 │   def decorator_result_to_dataframe(func: Callable):
     70 │   │   @functools.wraps(func)
     71 │   │   def wrapper(*args, **kwargs) -> pd.DataFrame:
  ❱  72 │   │   │   results = func(*args, **kwargs)
     73 │   │   │   if len(column_names) == 1:
     74 │   │   │   │   df_input = {column_names[0]: results}
     75 │   │   │   else:

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/nodes/retrieval/vecto
  rdb.py:72 in pure

     69 │   def pure(self, previous_result: pd.DataFrame, *args, **kwargs):
     70 │   │   queries = self.cast_to_run(previous_result)
     71 │   │   pure_params = pop_params(self._pure, kwargs)
  ❱  72 │   │   ids, scores = self._pure(queries, **pure_params)
     73 │   │   contents = fetch_contents(self.corpus_df, ids)
     74 │   │   return contents, ids, scores
     75

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/nodes/retrieval/vecto
  rdb.py:111 in _pure

    108 │   │   │   for query_list in queries
    109 │   │   ]
    110 │   │   loop = get_event_loop()
  ❱ 111 │   │   results = loop.run_until_complete(
    112 │   │   │   process_batch(tasks, batch_size=embedding_batch)
    113 │   │   )
    114 │   │   id_result = list(map(lambda x: x[0], results))

  /home/m/miniconda3/envs/1/lib/python3.11/asyncio/base_events.py:654 in
  run_until_complete

     651 │   │   if not future.done():
     652 │   │   │   raise RuntimeError('Event loop stopped before Future completed.')
     653 │   │
  ❱  654 │   │   return future.result()
     655 │
     656 │   def stop(self):
     657 │   │   """Stop running the event loop.

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/utils/util.py:305 in
  process_batch

    302 │
    303 │   for i in range(0, len(tasks), batch_size):
    304 │   │   batch = tasks[i : i + batch_size]
  ❱ 305 │   │   batch_results = await asyncio.gather(*batch)
    306 │   │   results.extend(batch_results)
    307 │
    308 │   return results

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/nodes/retrieval/vecto
  rdb.py:191 in vectordb_pure

    188 │   │   │   zip(score_result, id_result), key=lambda pair: pair[0], reverse=Tr
    189 │   │   )
    190 │   ]
  ❱ 191 │   id_result, score_result = zip(*result)
    192 │   return list(id_result), list(score_result)
    193
    194
────────────────────────────────────────────────────────────────────────────────────────
ValueError: not enough values to unpack (expected 2, got 0)
^C  Stopping...
^C
Aborted!
^C
(1) m@m:~$ evaluator.start_trial('/content/config.yaml', skip_validation=True)
-bash: syntax error near unexpected token `'/content/config.yaml','
(1) m@m:~$ evaluator.start_trial('ز/config.yaml', skip_validation=True)
-bash: syntax error near unexpected token `'ز/config.yaml','
(1) m@m:~$ evaluator.start_trial('config.yaml', skip_validation=True)
-bash: syntax error near unexpected token `'config.yaml','
(1) m@m:~$ builder.build_index()
>
>
>
> ^C
(1) m@m:~$ ^C
(1) m@m:~$ python
Python 3.11.13 (main, Jun  5 2025, 13:12:00) [GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from autorag.index import IndexBuilder
r = IndexBuilder(
    config_yaml_path="config.yaml",
    project_dir="./project_dir"
)

builder.build_index()
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
[06/29/25 20:45:17] ERROR    [__init__.py:53] >> Unexpected exception                                     __init__.py:53                             ╭─────────────────── Traceback (most recent call last) ────────────────────╮
                             │ in <module>:1                                                            │
                             ╰──────────────────────────────────────────────────────────────────────────╯
                             ModuleNotFoundError: No module named 'autorag.index'
>>>
>>> builder = IndexBuilder(
...     config_yaml_path="config.yaml",
...     project_dir="./project_dir"
... )
                    ERROR    [__init__.py:53] >> Unexpected exception                                     __init__.py:53                             ╭─────────────────── Traceback (most recent call last) ────────────────────╮
                             │ in <module>:1                                                            │
                             ╰──────────────────────────────────────────────────────────────────────────╯
                             NameError: name 'IndexBuilder' is not defined
>>>
>>> builder.build_index()
                    ERROR    [__init__.py:53] >> Unexpected exception                                     __init__.py:53                             ╭─────────────────── Traceback (most recent call last) ────────────────────╮
                             │ in <module>:1                                                            │
                             ╰──────────────────────────────────────────────────────────────────────────╯
                             NameError: name 'builder' is not defined
>>> from chromadb import PersistentClient

client = PersistentClient(path="./project_dir/data/chroma")
collection = client.get_collection("huggingface_all_mpnet_base_v2")
print(collection.count())  # يجب أن تُظهر عدد الوثائق

>>>
>>> client = PersistentClient(path="./project_dir/data/chroma")
[06/29/25 20:46:16] INFO     [posthog.py:22] >> Anonymized telemetry enabled. See                          posthog.py:22                             https://docs.trychroma.com/telemetry for more information.
                    ERROR    [posthog.py:61] >> Failed to send telemetry event ClientStartEvent: capture() posthog.py:61                             takes 1 positional argument but 3 were given
>>> collection = client.get_collection("huggingface_all_mpnet_base_v2")
>>> print(collection.count())  # يجب أن تُظهر عدد الوثائق
0
>>>
>>> exit()

























(1) m@m:~$
(1) m@m:~$
(1) m@m:~$
(1) m@m:~$
(1) m@m:~$
(1) m@m:~$
(1) m@m:~$
(1) m@m:~$
(1) m@m:~$
(1) m@m:~$
(1) m@m:~$
(1) m@m:~$
(1) m@m:~$
(1) m@m:~$
(1) m@m:~$
(1) m@m:~$
(1) m@m:~$
(1) m@m:~$
(1) m@m:~$
(1) m@m:~$
(1) m@m:~$
(1) m@m:~$
(1) m@m:~$
(1) m@m:~$
(1) m@m:~$
(1) m@m:~$ autorag build_index --yaml_path config.yaml --project_dir ./project_dir
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
[06/29/25 20:49:43] INFO     [config.py:54] >> PyTorch version 2.7.1 available.                             config.py:54Usage: autorag [OPTIONS] COMMAND [ARGS]...
Try 'autorag --help' for help.

Error: No such command 'build_index'.
(1) m@m:~$ autorag --help
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
[06/29/25 20:50:22] INFO     [config.py:54] >> PyTorch version 2.7.1 available.                             config.py:54Usage: autorag [OPTIONS] COMMAND [ARGS]...

Options:
  --version  Show the version and exit.
  --help     Show this message and exit.

Commands:
  dashboard
  evaluate
  extract_best_config
  restart_evaluate
  run_api
  run_web
  validate
(1) m@m:~$ cd ./project_dir\data
-bash: cd: ./project_dirdata: No such file or directory
(1) m@m:~$ cd .\project_dir\data
-bash: cd: .project_dirdata: No such file or directory
(1) m@m:~$ cd project_dir
(1) m@m:~/project_dir$ cd data
(1) m@m:~/project_dir/data$ ls
chroma  corpus.parquet  qa.parquet
(1) m@m:~/project_dir/data$ python
Python 3.11.13 (main, Jun  5 2025, 13:12:00) [GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from autorag.index import IndexBuilder
r = IndexBuilder(
    config_yaml_path="config.yaml",
    project_dir="./project_dir"
)
builder.build_index()

/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
[06/29/25 20:52:53] ERROR    [__init__.py:53] >> Unexpected exception                                     __init__.py:53                             ╭─────────────────── Traceback (most recent call last) ────────────────────╮
                             │ in <module>:1                                                            │
                             ╰──────────────────────────────────────────────────────────────────────────╯
                             ModuleNotFoundError: No module named 'autorag.index'
>>>
>>> builder = IndexBuilder(
...     config_yaml_path="config.yaml",
...     project_dir="./project_dir"
... )
                    ERROR    [__init__.py:53] >> Unexpected exception                                     __init__.py:53                             ╭─────────────────── Traceback (most recent call last) ────────────────────╮
                             │ in <module>:1                                                            │
                             ╰──────────────────────────────────────────────────────────────────────────╯
                             NameError: name 'IndexBuilder' is not defined
>>> builder.build_index()
                    ERROR    [__init__.py:53] >> Unexpected exception                                     __init__.py:53                             ╭─────────────────── Traceback (most recent call last) ────────────────────╮
                             │ in <module>:1                                                            │
                             ╰──────────────────────────────────────────────────────────────────────────╯
                             NameError: name 'builder' is not defined
>>>
>>> from chromadb import PersistentClient

client = PersistentClient(path="./project_dir/data/chroma")
collection = client.get_collection("huggingface_all_mpnet_base_v2")
print("عدد الوثائق:", collection.count())>>>
>>> client = PersistentClient(path="./project_dir/data/chroma")

[06/29/25 20:52:55] INFO     [posthog.py:22] >> Anonymized telemetry enabled. See                          posthog.py:22                             https://docs.trychroma.com/telemetry for more information.
                    ERROR    [posthog.py:61] >> Failed to send telemetry event ClientStartEvent: capture() posthog.py:61                             takes 1 positional argument but 3 were given
>>> collection = client.get_collection("huggingface_all_mpnet_base_v2")
                    ERROR    [__init__.py:53] >> Unexpected exception                                     __init__.py:53                             ╭─────────────────── Traceback (most recent call last) ────────────────────╮
                             │ in <module>:1                                                            │
                             │                                                                          │
                             │ /home/m/miniconda3/envs/1/lib/python3.11/site-packages/chromadb/api/clie │
                             │ nt.py:192 in get_collection                                              │
                             │                                                                          │
                             │   189 │   │   ] = ef.DefaultEmbeddingFunction(),  # type: ignore         │
                             │   190 │   │   data_loader: Optional[DataLoader[Loadable]] = None,        │
                             │   191 │   ) -> Collection:                                               │
                             │ ❱ 192 │   │   model = self._server.get_collection(                       │
                             │   193 │   │   │   name=name,                                             │
                             │   194 │   │   │   tenant=self.tenant,                                    │
                             │   195 │   │   │   database=self.database,                                │
                             │                                                                          │
                             │ /home/m/miniconda3/envs/1/lib/python3.11/site-packages/chromadb/api/rust │
                             │ .py:248 in get_collection                                                │
                             │                                                                          │
                             │   245 │   │   tenant: str = DEFAULT_TENANT,                              │
                             │   246 │   │   database: str = DEFAULT_DATABASE,                          │
                             │   247 │   ) -> CollectionModel:                                          │
                             │ ❱ 248 │   │   collection = self.bindings.get_collection(name, tenant, da │
                             │   249 │   │   return CollectionModel(                                    │
                             │   250 │   │   │   id=collection.id,                                      │
                             │   251 │   │   │   name=collection.name,                                  │
                             ╰──────────────────────────────────────────────────────────────────────────╯
                             NotFoundError: Collection [huggingface_all_mpnet_base_v2] does not exists
>>> print("عدد الوثائق:", collection.count())
[06/29/25 20:52:56] ERROR    [__init__.py:53] >> Unexpected exception                                     __init__.py:53                             ╭─────────────────── Traceback (most recent call last) ────────────────────╮
                             │ in <module>:1                                                            │
                             ╰──────────────────────────────────────────────────────────────────────────╯
                             NameError: name 'collection' is not defined
>>>
>>>
>>>
>>>
>>> from autorag.deploy import Runner
r = Runner.from_yaml('./project_dir/0/best.yaml', project_dir='/content/project_dir')
runner.run('who are you?')
>>> runner = Runner.from_yaml('./project_dir/0/best.yaml', project_dir='/content/project_dir')
[06/29/25 20:54:02] ERROR    [__init__.py:53] >> Unexpected exception                                     __init__.py:53                             ╭─────────────────── Traceback (most recent call last) ────────────────────╮
                             │ in <module>:1                                                            │
                             │                                                                          │
                             │ /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/deploy/ba │
                             │ se.py:186 in from_yaml                                                   │
                             │                                                                          │
                             │   183 │   │   │   Default is the current directory.                      │
                             │   184 │   │   :return: Initialized Runner.                               │
                             │   185 │   │   """                                                        │
                             │ ❱ 186 │   │   config = load_yaml_config(yaml_path)                       │
                             │   187 │   │   return cls(config, project_dir=project_dir)                │
                             │   188 │                                                                  │
                             │   189 │   @classmethod                                                   │
                             │                                                                          │
                             │ /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/utils/uti │
                             │ l.py:698 in load_yaml_config                                             │
                             │                                                                          │
                             │   695 │   :return: The loaded configuration dictionary.                  │
                             │   696 │   """                                                            │
                             │   697 │   if not os.path.exists(yaml_path):                              │
                             │ ❱ 698 │   │   raise ValueError(f"YAML file {yaml_path} does not exist.") │
                             │   699 │   with open(yaml_path, "r", encoding="utf-8") as stream:         │
                             │   700 │   │   try:                                                       │
                             │   701 │   │   │   yaml_dict = yaml.safe_load(stream)                     │
                             ╰──────────────────────────────────────────────────────────────────────────╯
                             ValueError: YAML file ./project_dir/0/best.yaml does not exist.
>>> runner.run('who are you?')
                    ERROR    [__init__.py:53] >> Unexpected exception                                     __init__.py:53                             ╭─────────────────── Traceback (most recent call last) ────────────────────╮
                             │ in <module>:1                                                            │
                             ╰──────────────────────────────────────────────────────────────────────────╯
                             NameError: name 'runner' is not defined
>>> exit()
(1) m@m:~/project_dir/data$ cd ..
(1) m@m:~/project_dir$ cd ..
(1) m@m:~$ cd eli5_data
(1) m@m:~/eli5_data$ ls
corpus.parquet  qa_sample.parquet  qa_test.parquet  qa_train.parquet
(1) m@m:~/eli5_data$ ls ~/eli5_data
corpus.parquet  qa_sample.parquet  qa_test.parquet  qa_train.parquet
(1) m@m:~/eli5_data$ python
Python 3.11.13 (main, Jun  5 2025, 13:12:00) [GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas as pd
= pd.read_parquet('./eli5_data/corpus.parquet')
df.to_json('./eli5_data/corpus.jsonl', orient='records', lines=True)
>>>
>>> df = pd.read_parquet('./eli5_data/corpus.parquet')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pandas/io/parquet.py", line 667, in read_parquet
    return impl.read(
           ^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pandas/io/parquet.py", line 267, in read
    path_or_handle, handles, filesystem = _get_path_or_handle(
                                          ^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pandas/io/parquet.py", line 140, in _get_path_or_handle
    handles = get_handle(
              ^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pandas/io/common.py", line 882, in get_handle
    handle = open(handle, ioargs.mode)
             ^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: './eli5_data/corpus.parquet'
>>> df.to_json('./eli5_data/corpus.jsonl', orient='records', lines=True)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'df' is not defined
>>> from autorag.nodes.ingestion.parsers import JsonlParser
odes.ingestion import EmbedAndStore
from autorag.embeddings import HuggingFaceEmbedding

# 1. التحليل
parser = JsonlParser(input_file="./eli5_data/corpus.jsonl")
docs = parser.parse()

# 2. النموذج
embedding_model = HuggingFaceEmbedding(model_name="sentence-transformers/all-mpnet-base-v2")

# 3. بناء الفهرس وتخزينه
store = EmbedAndStore(embedding=embedding_model, save_path="./eli5_data/chroma")
store.pure(docs)

/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
[06/29/25 20:57:58] ERROR    [__init__.py:53] >> Unexpected exception                                     __init__.py:53                             ╭─────────────────── Traceback (most recent call last) ────────────────────╮
                             │ in <module>:1                                                            │
                             ╰──────────────────────────────────────────────────────────────────────────╯
                             ModuleNotFoundError: No module named 'autorag.nodes.ingestion'
>>> from autorag.nodes.ingestion import EmbedAndStore
                    ERROR    [__init__.py:53] >> Unexpected exception                                     __init__.py:53                             ╭─────────────────── Traceback (most recent call last) ────────────────────╮
                             │ in <module>:1                                                            │
                             ╰──────────────────────────────────────────────────────────────────────────╯
                             ModuleNotFoundError: No module named 'autorag.nodes.ingestion'
>>> from autorag.embeddings import HuggingFaceEmbedding
                    ERROR    [__init__.py:53] >> Unexpected exception                                     __init__.py:53                             ╭─────────────────── Traceback (most recent call last) ────────────────────╮
                             │ in <module>:1                                                            │
                             ╰──────────────────────────────────────────────────────────────────────────╯
                             ModuleNotFoundError: No module named 'autorag.embeddings'
>>>
>>> # 1. التحليل
>>> parser = JsonlParser(input_file="./eli5_data/corpus.jsonl")
                    ERROR    [__init__.py:53] >> Unexpected exception                                     __init__.py:53                             ╭─────────────────── Traceback (most recent call last) ────────────────────╮
                             │ in <module>:1                                                            │
                             ╰──────────────────────────────────────────────────────────────────────────╯
                             NameError: name 'JsonlParser' is not defined
>>> docs = parser.parse()
                    ERROR    [__init__.py:53] >> Unexpected exception                                     __init__.py:53                             ╭─────────────────── Traceback (most recent call last) ────────────────────╮
                             │ in <module>:1                                                            │
                             ╰──────────────────────────────────────────────────────────────────────────╯
                             NameError: name 'parser' is not defined
>>>
>>> # 2. النموذج
>>> embedding_model = HuggingFaceEmbedding(model_name="sentence-transformers/all-mpnet-base-v2")
                    ERROR    [__init__.py:53] >> Unexpected exception                                     __init__.py:53                             ╭─────────────────── Traceback (most recent call last) ────────────────────╮
                             │ in <module>:1                                                            │
                             ╰──────────────────────────────────────────────────────────────────────────╯
                             NameError: name 'HuggingFaceEmbedding' is not defined
>>>
>>> # 3. بناء الفهرس وتخزينه
>>> store = EmbedAndStore(embedding=embedding_model, save_path="./eli5_data/chroma")
                    ERROR    [__init__.py:53] >> Unexpected exception                                     __init__.py:53                             ╭─────────────────── Traceback (most recent call last) ────────────────────╮
                             │ in <module>:1                                                            │
                             ╰──────────────────────────────────────────────────────────────────────────╯
                             NameError: name 'EmbedAndStore' is not defined
>>> store.pure(docs)
                    ERROR    [__init__.py:53] >> Unexpected exception                                     __init__.py:53                             ╭─────────────────── Traceback (most recent call last) ────────────────────╮
                             │ in <module>:1                                                            │
                             ╰──────────────────────────────────────────────────────────────────────────╯
                             NameError: name 'store' is not defined
>>>
>>> from autorag.utils.util import save_jsonl
autorag.nodes.retrieval.vectordb import ChromaVectorDB
from autorag.embeddings import HuggingFaceEmbedding

import json

# تحميل البيانات من JSONL
with open("corpus.jsonl", "r") as f:
    docs = [json.loads(line) for line in f]

# تجهيز نموذج التضمين
embedding = HuggingFaceEmbedding(model_name="sentence-transformers/all-mpnet-base-v2")

# تخزين التضمينات في Chroma
vectordb = ChromaVectorDB(save_path="./eli5_data/chroma", embedding=embedding)
vectordb.pure(docs)
[06/29/25 20:59:46] ERROR    [__init__.py:53] >> Unexpected exception                                     __init__.py:53                             ╭─────────────────── Traceback (most recent call last) ────────────────────╮
                             │ in <module>:1                                                            │
                             ╰──────────────────────────────────────────────────────────────────────────╯
                             ImportError: cannot import name 'save_jsonl' from 'autorag.utils.util'
                             (/home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/utils/util.p
                             y)
>>> from autorag.nodes.retrieval.vectordb import ChromaVectorDB
                    INFO     [config.py:54] >> PyTorch version 2.7.1 available.                             config.py:54[06/29/25 20:59:52] ERROR    [__init__.py:53] >> Unexpected exception                                     __init__.py:53                             ╭─────────────────── Traceback (most recent call last) ────────────────────╮
                             │ in <module>:1                                                            │
                             ╰──────────────────────────────────────────────────────────────────────────╯
                             ImportError: cannot import name 'ChromaVectorDB' from
                             'autorag.nodes.retrieval.vectordb'
                             (/home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/nodes/retrie
                             val/vectordb.py)
>>> from autorag.embeddings import HuggingFaceEmbedding
                    ERROR    [__init__.py:53] >> Unexpected exception                                     __init__.py:53                             ╭─────────────────── Traceback (most recent call last) ────────────────────╮
                             │ in <module>:1                                                            │
                             ╰──────────────────────────────────────────────────────────────────────────╯
                             ModuleNotFoundError: No module named 'autorag.embeddings'
>>>
>>> import json
>>>
>>> # تحميل البيانات من JSONL
>>> with open("corpus.jsonl", "r") as f:
...     docs = [json.loads(line) for line in f]
...
                    ERROR    [__init__.py:53] >> Unexpected exception                                     __init__.py:53                             ╭─────────────────── Traceback (most recent call last) ────────────────────╮
                             │ in <module>:1                                                            │
                             ╰──────────────────────────────────────────────────────────────────────────╯
                             FileNotFoundError: [Errno 2] No such file or directory: 'corpus.jsonl'
>>> # تجهيز نموذج التضمين
>>> embedding = HuggingFaceEmbedding(model_name="sentence-transformers/all-mpnet-base-v2")
                    ERROR    [__init__.py:53] >> Unexpected exception                                     __init__.py:53                             ╭─────────────────── Traceback (most recent call last) ────────────────────╮
                             │ in <module>:1                                                            │
                             ╰──────────────────────────────────────────────────────────────────────────╯
                             NameError: name 'HuggingFaceEmbedding' is not defined
>>>
>>> # تخزين التضمينات في Chroma
>>> vectordb = ChromaVectorDB(save_path="./eli5_data/chroma", embedding=embedding)
                    ERROR    [__init__.py:53] >> Unexpected exception                                     __init__.py:53                             ╭─────────────────── Traceback (most recent call last) ────────────────────╮
                             │ in <module>:1                                                            │
                             ╰──────────────────────────────────────────────────────────────────────────╯
                             NameError: name 'ChromaVectorDB' is not defined
>>> vectordb.pure(docs)
                    ERROR    [__init__.py:53] >> Unexpected exception                                     __init__.py:53                             ╭─────────────────── Traceback (most recent call last) ────────────────────╮
                             │ in <module>:1                                                            │
                             ╰──────────────────────────────────────────────────────────────────────────╯
                             NameError: name 'vectordb' is not defined
>>> exit(2~)
[06/29/25 21:01:58] ERROR    [__init__.py:53] >> Unexpected exception                                     __init__.py:53                             ╭──────────────────────────────────────────────────────────────────────────╮
                             │ exit(2~)                                                                 │
                             │       ▲                                                                  │
                             ╰──────────────────────────────────────────────────────────────────────────╯
                             SyntaxError: invalid syntax
>>> exit()
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$
(1) m@m:~/eli5_data$ cd ..
(1) m@m:~$ autorag run_web --yaml_path config.yaml --project_dir ./project_dir

/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
[06/29/25 21:02:32] INFO     [config.py:54] >> PyTorch version 2.7.1 available.                             config.py:54
  You can now view your Streamlit app in your browser.

  Local URL: http://localhost:8501
  Network URL: http://172.21.151.42:8501

gio: http://localhost:8501: Operation not supported
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
[06/29/25 21:02:53] INFO     [config.py:54] >> PyTorch version 2.7.1 available.                             config.py:54[06/29/25 21:02:55] INFO     [base.py:18] >> Initialize retrieval node - VectorDB                             base.py:18[06/29/25 21:02:56] INFO     [SentenceTransformer.py:219] >> Load pretrained                  SentenceTransformer.py:219                             SentenceTransformer: sentence-transformers/all-mpnet-base-v2
[06/29/25 21:02:59] INFO     [SentenceTransformer.py:358] >> 2 prompts are loaded, with the   SentenceTransformer.py:358                             keys: ['query', 'text']
                    INFO     [posthog.py:22] >> Anonymized telemetry enabled. See                          posthog.py:22                             https://docs.trychroma.com/telemetry for more information.
                    ERROR    [posthog.py:61] >> Failed to send telemetry event ClientStartEvent: capture() posthog.py:61                             takes 1 positional argument but 3 were given
                    ERROR    [posthog.py:61] >> Failed to send telemetry event                             posthog.py:61                             ClientCreateCollectionEvent: capture() takes 1 positional argument but 3 were
                             given
                    INFO     [base.py:15] >> Initialize prompt maker node - Fstring module...                 base.py:15                    INFO     [base.py:19] >> Initialize generator node - LlamaIndexLLM                        base.py:19[06/29/25 21:03:16] INFO     [base.py:18] >> Initialize retrieval node - VectorDB                             base.py:18                    ERROR    [posthog.py:61] >> Failed to send telemetry event ClientStartEvent: capture() posthog.py:61                             takes 1 positional argument but 3 were given
                    ERROR    [posthog.py:61] >> Failed to send telemetry event                             posthog.py:61                             ClientCreateCollectionEvent: capture() takes 1 positional argument but 3 were
                             given
                    INFO     [base.py:15] >> Initialize prompt maker node - Fstring module...                 base.py:15                    INFO     [base.py:19] >> Initialize generator node - LlamaIndexLLM                        base.py:19                    INFO     [base.py:31] >> Running retrieval node - VectorDB module...                      base.py:31[06/29/25 21:03:18] ERROR    [posthog.py:61] >> Failed to send telemetry event CollectionQueryEvent:       posthog.py:61                             capture() takes 1 positional argument but 3 were given
────────────────────────── Traceback (most recent call last) ───────────────────────────
  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/streamlit/runtime/scriptrunne
  r/exec_code.py:128 in exec_func_with_error_handling

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/streamlit/runtime/scriptrunne
  r/script_runner.py:669 in code_to_exec

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:81 in <module>

    78
    79
    80 if __name__ == "__main__":
  ❱ 81 │   run_web_server()
    82

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1442 in
  __call__

    1439 │
    1440 │   def __call__(self, *args: t.Any, **kwargs: t.Any) -> t.Any:
    1441 │   │   """Alias for :meth:`main`."""
  ❱ 1442 │   │   return self.main(*args, **kwargs)
    1443
    1444
    1445 class _FakeSubclassCheck(type):

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1363 in main

    1360 │   │   try:
    1361 │   │   │   try:
    1362 │   │   │   │   with self.make_context(prog_name, args, **extra) as ctx:
  ❱ 1363 │   │   │   │   │   rv = self.invoke(ctx)
    1364 │   │   │   │   │   if not standalone_mode:
    1365 │   │   │   │   │   │   return rv
    1366 │   │   │   │   │   # it's not safe to `ctx.exit(rv)` here!

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1226 in invoke

    1223 │   │   │   echo(style(message, fg="red"), err=True)
    1224 │   │
    1225 │   │   if self.callback is not None:
  ❱ 1226 │   │   │   return ctx.invoke(self.callback, **ctx.params)
    1227 │
    1228 │   def shell_complete(self, ctx: Context, incomplete: str) -> list[Completio
    1229 │   │   """Return a list of completions for the incomplete value. Looks

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:794 in invoke

     791 │   │
     792 │   │   with augment_usage_errors(self):
     793 │   │   │   with ctx:
  ❱  794 │   │   │   │   return callback(*args, **kwargs)
     795 │
     796 │   def forward(self, cmd: Command, /, *args: t.Any, **kwargs: t.Any) -> t.An
     797 │   │   """Similar to :meth:`invoke` but fills in default keyword

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:77 in
  run_web_server

    74 │   set_initial_state()
    75 │   set_page_config()
    76 │   set_page_header()
  ❱ 77 │   chat_box(runner)
    78
    79
    80 if __name__ == "__main__":

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:60 in chat_box

    57 │   │   # Generate llama-index stream with user input
    58 │   │   with st.chat_message("assistant"):
    59 │   │   │   with st.spinner("Processing..."):
  ❱ 60 │   │   │   │   response = st.write(runner.run(query))
    61 │   │
    62 │   │   # Add the final response to messages state
    63 │   │   st.session_state["messages"].append({"role": "assistant", "content": re

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/deploy/base.py:226 in
  run

    223 │   │   for module_instance, module_param in zip(
    224 │   │   │   self.module_instances, self.module_params
    225 │   │   ):
  ❱ 226 │   │   │   new_result = module_instance.pure(
    227 │   │   │   │   previous_result=previous_result, **module_param
    228 │   │   │   )
    229 │   │   │   duplicated_columns = previous_result.columns.intersection(

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/utils/util.py:72 in
  wrapper

     69 │   def decorator_result_to_dataframe(func: Callable):
     70 │   │   @functools.wraps(func)
     71 │   │   def wrapper(*args, **kwargs) -> pd.DataFrame:
  ❱  72 │   │   │   results = func(*args, **kwargs)
     73 │   │   │   if len(column_names) == 1:
     74 │   │   │   │   df_input = {column_names[0]: results}
     75 │   │   │   else:

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/nodes/retrieval/vecto
  rdb.py:72 in pure

     69 │   def pure(self, previous_result: pd.DataFrame, *args, **kwargs):
     70 │   │   queries = self.cast_to_run(previous_result)
     71 │   │   pure_params = pop_params(self._pure, kwargs)
  ❱  72 │   │   ids, scores = self._pure(queries, **pure_params)
     73 │   │   contents = fetch_contents(self.corpus_df, ids)
     74 │   │   return contents, ids, scores
     75

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/nodes/retrieval/vecto
  rdb.py:111 in _pure

    108 │   │   │   for query_list in queries
    109 │   │   ]
    110 │   │   loop = get_event_loop()
  ❱ 111 │   │   results = loop.run_until_complete(
    112 │   │   │   process_batch(tasks, batch_size=embedding_batch)
    113 │   │   )
    114 │   │   id_result = list(map(lambda x: x[0], results))

  /home/m/miniconda3/envs/1/lib/python3.11/asyncio/base_events.py:654 in
  run_until_complete

     651 │   │   if not future.done():
     652 │   │   │   raise RuntimeError('Event loop stopped before Future completed.')
     653 │   │
  ❱  654 │   │   return future.result()
     655 │
     656 │   def stop(self):
     657 │   │   """Stop running the event loop.

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/utils/util.py:305 in
  process_batch

    302 │
    303 │   for i in range(0, len(tasks), batch_size):
    304 │   │   batch = tasks[i : i + batch_size]
  ❱ 305 │   │   batch_results = await asyncio.gather(*batch)
    306 │   │   results.extend(batch_results)
    307 │
    308 │   return results

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/nodes/retrieval/vecto
  rdb.py:191 in vectordb_pure

    188 │   │   │   zip(score_result, id_result), key=lambda pair: pair[0], reverse=Tr
    189 │   │   )
    190 │   ]
  ❱ 191 │   id_result, score_result = zip(*result)
    192 │   return list(id_result), list(score_result)
    193
    194
────────────────────────────────────────────────────────────────────────────────────────
ValueError: not enough values to unpack (expected 2, got 0)
[06/29/25 21:04:11] INFO     [base.py:18] >> Initialize retrieval node - VectorDB                           base.py:18
[06/29/25 21:04:12] ERROR    [posthog.py:61] >> Failed to send telemetry event ClientStartEvent:         posthog.py:61
                             capture() takes 1 positional argument but 3 were given
                    ERROR    [posthog.py:61] >> Failed to send telemetry event                           posthog.py:61
                             ClientCreateCollectionEvent: capture() takes 1 positional argument but 3
                             were given
                    INFO     [base.py:15] >> Initialize prompt maker node - Fstring module...               base.py:15
                    INFO     [base.py:19] >> Initialize generator node - LlamaIndexLLM                      base.py:19
                    INFO     [base.py:23] >> Deleting generator module - LlamaIndexLLM                      base.py:23
                    INFO     [base.py:20] >> Prompt maker node - Fstring module is deleted.                 base.py:20
                    INFO     [base.py:28] >> Deleting retrieval node - VectorDB module...                   base.py:28
[06/29/25 21:04:18] INFO     [base.py:18] >> Initialize retrieval node - VectorDB                           base.py:18
                    ERROR    [posthog.py:61] >> Failed to send telemetry event ClientStartEvent:         posthog.py:61
                             capture() takes 1 positional argument but 3 were given
                    ERROR    [posthog.py:61] >> Failed to send telemetry event                           posthog.py:61
                             ClientCreateCollectionEvent: capture() takes 1 positional argument but 3
                             were given
                    INFO     [base.py:15] >> Initialize prompt maker node - Fstring module...               base.py:15
                    INFO     [base.py:19] >> Initialize generator node - LlamaIndexLLM                      base.py:19
                    INFO     [base.py:31] >> Running retrieval node - VectorDB module...                    base.py:31
────────────────────────── Traceback (most recent call last) ───────────────────────────
  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/streamlit/runtime/scriptrunne
  r/exec_code.py:128 in exec_func_with_error_handling

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/streamlit/runtime/scriptrunne
  r/script_runner.py:669 in code_to_exec

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:81 in <module>

    78
    79
    80 if __name__ == "__main__":
  ❱ 81 │   run_web_server()
    82

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1442 in
  __call__

    1439 │
    1440 │   def __call__(self, *args: t.Any, **kwargs: t.Any) -> t.Any:
    1441 │   │   """Alias for :meth:`main`."""
  ❱ 1442 │   │   return self.main(*args, **kwargs)
    1443
    1444
    1445 class _FakeSubclassCheck(type):

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1363 in main

    1360 │   │   try:
    1361 │   │   │   try:
    1362 │   │   │   │   with self.make_context(prog_name, args, **extra) as ctx:
  ❱ 1363 │   │   │   │   │   rv = self.invoke(ctx)
    1364 │   │   │   │   │   if not standalone_mode:
    1365 │   │   │   │   │   │   return rv
    1366 │   │   │   │   │   # it's not safe to `ctx.exit(rv)` here!

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1226 in invoke

    1223 │   │   │   echo(style(message, fg="red"), err=True)
    1224 │   │
    1225 │   │   if self.callback is not None:
  ❱ 1226 │   │   │   return ctx.invoke(self.callback, **ctx.params)
    1227 │
    1228 │   def shell_complete(self, ctx: Context, incomplete: str) -> list[Completio
    1229 │   │   """Return a list of completions for the incomplete value. Looks

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:794 in invoke

     791 │   │
     792 │   │   with augment_usage_errors(self):
     793 │   │   │   with ctx:
  ❱  794 │   │   │   │   return callback(*args, **kwargs)
     795 │
     796 │   def forward(self, cmd: Command, /, *args: t.Any, **kwargs: t.Any) -> t.An
     797 │   │   """Similar to :meth:`invoke` but fills in default keyword

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:77 in
  run_web_server

    74 │   set_initial_state()
    75 │   set_page_config()
    76 │   set_page_header()
  ❱ 77 │   chat_box(runner)
    78
    79
    80 if __name__ == "__main__":

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:60 in chat_box

    57 │   │   # Generate llama-index stream with user input
    58 │   │   with st.chat_message("assistant"):
    59 │   │   │   with st.spinner("Processing..."):
  ❱ 60 │   │   │   │   response = st.write(runner.run(query))
    61 │   │
    62 │   │   # Add the final response to messages state
    63 │   │   st.session_state["messages"].append({"role": "assistant", "content": re

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/deploy/base.py:226 in
  run

    223 │   │   for module_instance, module_param in zip(
    224 │   │   │   self.module_instances, self.module_params
    225 │   │   ):
  ❱ 226 │   │   │   new_result = module_instance.pure(
    227 │   │   │   │   previous_result=previous_result, **module_param
    228 │   │   │   )
    229 │   │   │   duplicated_columns = previous_result.columns.intersection(

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/utils/util.py:72 in
  wrapper

     69 │   def decorator_result_to_dataframe(func: Callable):
     70 │   │   @functools.wraps(func)
     71 │   │   def wrapper(*args, **kwargs) -> pd.DataFrame:
  ❱  72 │   │   │   results = func(*args, **kwargs)
     73 │   │   │   if len(column_names) == 1:
     74 │   │   │   │   df_input = {column_names[0]: results}
     75 │   │   │   else:

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/nodes/retrieval/vecto
  rdb.py:72 in pure

     69 │   def pure(self, previous_result: pd.DataFrame, *args, **kwargs):
     70 │   │   queries = self.cast_to_run(previous_result)
     71 │   │   pure_params = pop_params(self._pure, kwargs)
  ❱  72 │   │   ids, scores = self._pure(queries, **pure_params)
     73 │   │   contents = fetch_contents(self.corpus_df, ids)
     74 │   │   return contents, ids, scores
     75

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/nodes/retrieval/vecto
  rdb.py:111 in _pure

    108 │   │   │   for query_list in queries
    109 │   │   ]
    110 │   │   loop = get_event_loop()
  ❱ 111 │   │   results = loop.run_until_complete(
    112 │   │   │   process_batch(tasks, batch_size=embedding_batch)
    113 │   │   )
    114 │   │   id_result = list(map(lambda x: x[0], results))

  /home/m/miniconda3/envs/1/lib/python3.11/asyncio/base_events.py:654 in
  run_until_complete

     651 │   │   if not future.done():
     652 │   │   │   raise RuntimeError('Event loop stopped before Future completed.')
     653 │   │
  ❱  654 │   │   return future.result()
     655 │
     656 │   def stop(self):
     657 │   │   """Stop running the event loop.

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/utils/util.py:305 in
  process_batch

    302 │
    303 │   for i in range(0, len(tasks), batch_size):
    304 │   │   batch = tasks[i : i + batch_size]
  ❱ 305 │   │   batch_results = await asyncio.gather(*batch)
    306 │   │   results.extend(batch_results)
    307 │
    308 │   return results

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/nodes/retrieval/vecto
  rdb.py:191 in vectordb_pure

    188 │   │   │   zip(score_result, id_result), key=lambda pair: pair[0], reverse=Tr
    189 │   │   )
    190 │   ]
  ❱ 191 │   id_result, score_result = zip(*result)
    192 │   return list(id_result), list(score_result)
    193
    194
────────────────────────────────────────────────────────────────────────────────────────
ValueError: not enough values to unpack (expected 2, got 0)
[06/29/25 21:04:19] INFO     [base.py:28] >> Deleting retrieval node - VectorDB module...                   base.py:28
                    INFO     [base.py:23] >> Deleting generator module - LlamaIndexLLM                      base.py:23
                    INFO     [base.py:20] >> Prompt maker node - Fstring module is deleted.                 base.py:20
^C  Stopping...
^C
Aborted!
(1) m@m:~$ python
Python 3.11.13 (main, Jun  5 2025, 13:12:00) [GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> from chromadb import PersistentClient
 PersistentClient(path="./project_dir/data/chroma")
print([c.name for c in client.list_collections()])
print("Document count:", client.get_collection("huggingface_all_mpnet_base_v2").count())

>>> client = PersistentClient(path="./project_dir/data/chroma")
Failed to send telemetry event ClientStartEvent: capture() takes 1 positional argument but 3 were given
>>> print([c.name for c in client.list_collections()])
['huggingface_all_mpnet_base_v2']
>>> print("Document count:", client.get_collection("huggingface_all_mpnet_base_v2").count())
Document count: 0
>>>
>>> autorag evaluate \
  File "<stdin>", line 1
    autorag evaluate \
SyntaxError: unexpected EOF while parsing
>>>   --config config.yaml \
  File "<stdin>", line 1
    --config config.yaml \
IndentationError: unexpected indent
qa_data>>>   --qa_data_path eli5_data/qa_train.parquet \
  File "<stdin>", line 1
    --qa_data_path eli5_data/qa_train.parquet \
--corpusIndentationError: unexpected indent
>>>   --corpus_data_path eli5_data/corpus.parquet \
  File "<stdin>", line 1
    --corpus_data_path eli5_data/corpus.parquet \
IndentationError: unexpected indent
>>>   --project_dir ./project_dir \
  File "<stdin>", line 1
    --project_dir ./project_dir \
IndentationError: unexpected indent
ull_ing>>>   --full_ingest True
  File "<stdin>", line 1
    --full_ingest True
IndentationError: unexpected indent
>>>
>>>
>>>
>>>
>>>
>>>
>>> exit()
(1) m@m:~$ autorag evaluate \
onfig co>   --config config.yaml \
>   --qa_data_path eli5_data/qa_train.parquet \
>   --corpus_data_path eli5_data/corpus.parquet \
>   --project_dir ./project_dir \
>   --full_ingest True

/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
[06/29/25 21:08:15] INFO     [config.py:54] >> PyTorch version 2.7.1 available.                           config.py:54
Usage: autorag evaluate [OPTIONS]
Try 'autorag evaluate --help' for help.

Error: No such option: --full_ingest
(1) m@m:~$
(1) m@m:~$ autorag evaluate --help
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
[06/29/25 21:08:55] INFO     [config.py:54] >> PyTorch version 2.7.1 available.                                                                  config.py:54Usage: autorag evaluate [OPTIONS]

Options:
  -c, --config TEXT          Path to config yaml file. Must be yaml or yml
                             file.
  --qa_data_path TEXT        Path to QA dataset. Must be parquet file.
  --corpus_data_path TEXT    Path to corpus dataset. Must be parquet file.
  --project_dir TEXT         Path to project directory.
  --skip_validation BOOLEAN  Skip validation or not. Default is False.
  --help                     Show this message and exit.
(1) m@m:~$ autorag evaluate \
>   --config config.yaml \
>   --qa_data_path eli5_data/qa_train.parquet \
>   --corpus_data_path eli5_data/corpus.parquet \
>   --project_dir ./project_dir

/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
[06/29/25 21:10:24] INFO     [config.py:54] >> PyTorch version 2.7.1 available.                                                                  config.py:54[06/29/25 21:10:39] INFO     [evaluator.py:127] >>                                                                                           evaluator.py:127                                             _        _____            _____
                                  /\        | |      |  __ \     /\   / ____|
                                 /  \  _   _| |_ ___ | |__) |   /  \ | |  __
                                / /\ \| | | | __/ _ \|  _  /   / /\ \| | |_ |
                               / ____ \ |_| | || (_) | | \ \  / ____ \ |__| |
                              /_/    \_\__,_|\__\___/|_|  \_\/_/    \_\_____|


                    INFO     [evaluator.py:128] >> Start Validation input data and config YAML file first. If you want to skip this, put the evaluator.py:128                             --skip_validation flag or `skip_validation` at the start_trial function.
[06/29/25 21:10:47] ERROR    [__init__.py:53] >> Unexpected exception                                                                          __init__.py:53                             ╭────────────────────────────────────── Traceback (most recent call last) ──────────────────────────────────────╮
                             │ /home/m/miniconda3/envs/1/bin/autorag:8 in <module>                                                           │
                             │                                                                                                               │
                             │   5 from autorag.cli import cli                                                                               │
                             │   6 if __name__ == '__main__':                                                                                │
                             │   7 │   sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])                                      │
                             │ ❱ 8 │   sys.exit(cli())                                                                                       │
                             │   9                                                                                                           │
                             │                                                                                                               │
                             │ /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1442 in __call__                         │
                             │                                                                                                               │
                             │   1439 │                                                                                                      │
                             │   1440 │   def __call__(self, *args: t.Any, **kwargs: t.Any) -> t.Any:                                        │
                             │   1441 │   │   """Alias for :meth:`main`."""                                                                  │
                             │ ❱ 1442 │   │   return self.main(*args, **kwargs)                                                              │
                             │   1443                                                                                                        │
                             │   1444                                                                                                        │
                             │   1445 class _FakeSubclassCheck(type):                                                                        │
                             │                                                                                                               │
                             │ /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1363 in main                             │
                             │                                                                                                               │
                             │   1360 │   │   try:                                                                                           │
                             │   1361 │   │   │   try:                                                                                       │
                             │   1362 │   │   │   │   with self.make_context(prog_name, args, **extra) as ctx:                               │
                             │ ❱ 1363 │   │   │   │   │   rv = self.invoke(ctx)                                                              │
                             │   1364 │   │   │   │   │   if not standalone_mode:                                                            │
                             │   1365 │   │   │   │   │   │   return rv                                                                      │
                             │   1366 │   │   │   │   │   # it's not safe to `ctx.exit(rv)` here!                                            │
                             │                                                                                                               │
                             │ /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1830 in invoke                           │
                             │                                                                                                               │
                             │   1827 │   │   │   │   super().invoke(ctx)                                                                    │
                             │   1828 │   │   │   │   sub_ctx = cmd.make_context(cmd_name, args, parent=ctx)                                 │
                             │   1829 │   │   │   │   with sub_ctx:                                                                          │
                             │ ❱ 1830 │   │   │   │   │   return _process_result(sub_ctx.command.invoke(sub_ctx))                            │
                             │   1831 │   │                                                                                                  │
                             │   1832 │   │   # In chain mode we create the contexts step by step, but after the                             │
                             │   1833 │   │   # base command has been invoked.  Because at that point we do not                              │
                             │                                                                                                               │
                             │ /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1226 in invoke                           │
                             │                                                                                                               │
                             │   1223 │   │   │   echo(style(message, fg="red"), err=True)                                                   │
                             │   1224 │   │                                                                                                  │
                             │   1225 │   │   if self.callback is not None:                                                                  │
                             │ ❱ 1226 │   │   │   return ctx.invoke(self.callback, **ctx.params)                                             │
                             │   1227 │                                                                                                      │
                             │   1228 │   def shell_complete(self, ctx: Context, incomplete: str) -> list[CompletionItem]:                   │
                             │   1229 │   │   """Return a list of completions for the incomplete value. Looks                                │
                             │                                                                                                               │
                             │ /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:794 in invoke                            │
                             │                                                                                                               │
                             │    791 │   │                                                                                                  │
                             │    792 │   │   with augment_usage_errors(self):                                                               │
                             │    793 │   │   │   with ctx:                                                                                  │
                             │ ❱  794 │   │   │   │   return callback(*args, **kwargs)                                                       │
                             │    795 │                                                                                                      │
                             │    796 │   def forward(self, cmd: Command, /, *args: t.Any, **kwargs: t.Any) -> t.Any:                        │
                             │    797 │   │   """Similar to :meth:`invoke` but fills in default keyword                                      │
                             │                                                                                                               │
                             │ /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/cli.py:60 in evaluate                          │
                             │                                                                                                               │
                             │    57 │   if not os.path.exists(config):                                                                      │
                             │    58 │   │   raise ValueError(f"Config file {config} does not exist.")                                       │
                             │    59 │   evaluator = Evaluator(qa_data_path, corpus_data_path, project_dir=project_dir)                      │
                             │ ❱  60 │   evaluator.start_trial(config, skip_validation=skip_validation)                                      │
                             │    61                                                                                                         │
                             │    62                                                                                                         │
                             │    63 @click.command()                                                                                        │
                             │                                                                                                               │
                             │ /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/evaluator.py:138 in start_trial                │
                             │                                                                                                               │
                             │   135 │   │   │   validator = Validator(                                                                      │
                             │   136 │   │   │   │   qa_data_path=self.qa_data_path, corpus_data_path=self.corpus_data_path                  │
                             │   137 │   │   │   )                                                                                           │
                             │ ❱ 138 │   │   │   validator.validate(yaml_path)                                                               │
                             │   139 │   │                                                                                                   │
                             │   140 │   │   os.environ["PROJECT_DIR"] = self.project_dir                                                    │
                             │   141                                                                                                         │
                             │                                                                                                               │
                             │ /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/validator.py:92 in validate                    │
                             │                                                                                                               │
                             │   89 │   │   │   │   corpus_data_path=corpus_path.name,                                                       │
                             │   90 │   │   │   │   project_dir=temp_project_dir,                                                            │
                             │   91 │   │   │   )                                                                                            │
                             │ ❱ 92 │   │   │   evaluator.start_trial(yaml_path, skip_validation=True)                                       │
                             │   93 │   │   │   qa_path.close()                                                                              │
                             │   94 │   │   │   corpus_path.close()                                                                          │
                             │   95 │   │   │   os.unlink(qa_path.name)                                                                      │
                             │                                                                                                               │
                             │ /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/evaluator.py:158 in start_trial                │
                             │                                                                                                               │
                             │   155 │   │   with open(vectordb_config_path, "w") as f:                                                      │
                             │   156 │   │   │   yaml.safe_dump({"vectordb": vectordb}, f)                                                   │
                             │   157 │   │                                                                                                   │
                             │ ❱ 158 │   │   node_lines = self._load_node_lines(yaml_path)                                                   │
                             │   159 │   │   self.__ingest_bm25_full(node_lines)                                                             │
                             │   160 │   │                                                                                                   │
                             │   161 │   │   with Progress(                                                                                  │
                             │                                                                                                               │
                             │ /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/evaluator.py:282 in _load_node_lines           │
                             │                                                                                                               │
                             │   279 │   │   node_lines = yaml_dict["node_lines"]                                                            │
                             │   280 │   │   node_line_dict = {}                                                                             │
                             │   281 │   │   for node_line in node_lines:                                                                    │
                             │ ❱ 282 │   │   │   node_line_dict[node_line["node_line_name"]] = list(                                         │
                             │   283 │   │   │   │   map(lambda node: Node.from_dict(node), node_line["nodes"])                              │
                             │   284 │   │   │   )                                                                                           │
                             │   285 │   │   return node_line_dict                                                                           │
                             │                                                                                                               │
                             │ /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/evaluator.py:283 in <lambda>                   │
                             │                                                                                                               │
                             │   280 │   │   node_line_dict = {}                                                                             │
                             │   281 │   │   for node_line in node_lines:                                                                    │
                             │   282 │   │   │   node_line_dict[node_line["node_line_name"]] = list(                                         │
                             │ ❱ 283 │   │   │   │   map(lambda node: Node.from_dict(node), node_line["nodes"])                              │
                             │   284 │   │   │   )                                                                                           │
                             │   285 │   │   return node_line_dict                                                                           │
                             │   286                                                                                                         │
                             │                                                                                                               │
                             │ /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/schema/node.py:49 in from_dict                 │
                             │                                                                                                               │
                             │    46 │   def from_dict(cls, node_dict: Dict) -> "Node":                                                      │
                             │    47 │   │   _node_dict = deepcopy(node_dict)                                                                │
                             │    48 │   │   node_type = _node_dict.pop("node_type")                                                         │
                             │ ❱  49 │   │   strategy = _node_dict.pop("strategy")                                                           │
                             │    50 │   │   modules = list(map(lambda x: Module.from_dict(x), _node_dict.pop("modules")))                   │
                             │    51 │   │   node_params = _node_dict                                                                        │
                             │    52 │   │   return cls(node_type, strategy, node_params, modules)                                           │
                             ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
                             KeyError: 'strategy'
(1) m@m:~$
(1) m@m:~$
(1) m@m:~$
(1) m@m:~$
(1) m@m:~$
(1) m@m:~$
(1) m@m:~$ ollama list
NAME                ID              SIZE      MODIFIED
bge-m3:latest       790764642607    1.2 GB    3 weeks ago
qwen2.5:3b          357c53fb659c    1.9 GB    3 weeks ago
orca-mini:latest    2dbd9f439647    2.0 GB    5 weeks ago
llama3.2:1b         baf6a787fdff    1.3 GB    5 weeks ago
(1) m@m:~$ autorag run_web --yaml_path project_dir/config.yaml --project_dir project_dir

^CTraceback (most recent call last):
  File "/home/m/miniconda3/envs/1/bin/autorag", line 5, in <module>
    from autorag.cli import cli
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/__init__.py", line 16, in <module>
    from llama_index.llms.openai_like import OpenAILike
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/llama_index/llms/openai_like/__init__.py", line 1, in <module>
    from llama_index.llms.openai_like.base import OpenAILike
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/llama_index/llms/openai_like/base.py", line 21, in <module>
    from transformers import AutoTokenizer
  File "<frozen importlib._bootstrap>", line 1229, in _handle_fromlist
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/transformers/utils/import_utils.py", line 1956, in __getattr__
    value = getattr(module, name)
            ^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/transformers/utils/import_utils.py", line 1955, in __getattr__
    module = self._get_module(self._class_to_module[name])
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/transformers/utils/import_utils.py", line 1967, in _get_module
    return importlib.import_module("." + module_name, self.__name__)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/transformers/models/auto/tokenization_auto.py", line 38, in <module>
    from .auto_factory import _LazyAutoMapping
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/transformers/models/auto/auto_factory.py", line 40, in <module>
    from ...generation import GenerationMixin
  File "<frozen importlib._bootstrap>", line 1229, in _handle_fromlist
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/transformers/utils/import_utils.py", line 1955, in __getattr__
    module = self._get_module(self._class_to_module[name])
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/transformers/utils/import_utils.py", line 1967, in _get_module
    return importlib.import_module("." + module_name, self.__name__)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/transformers/generation/utils.py", line 30, in <module>
    from transformers.generation.candidate_generator import AssistantVocabTranslatorCache
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/transformers/generation/candidate_generator.py", line 27, in <module>
    from sklearn.metrics import roc_curve
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/sklearn/__init__.py", line 73, in <module>
    from .base import clone  # noqa: E402
    ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/sklearn/base.py", line 19, in <module>
    from .utils._metadata_requests import _MetadataRequester, _routing_enabled
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/sklearn/utils/__init__.py", line 9, in <module>
    from ._chunking import gen_batches, gen_even_slices
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/sklearn/utils/_chunking.py", line 11, in <module>
    from ._param_validation import Interval, validate_params
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/sklearn/utils/_param_validation.py", line 17, in <module>
    from .validation import _is_arraylike_not_scalar
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/sklearn/utils/validation.py", line 21, in <module>
    from ..utils._array_api import _asarray_with_order, _is_numpy_namespace, get_namespace
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/sklearn/utils/_array_api.py", line 14, in <module>
    import scipy.special as special
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/scipy/special/__init__.py", line 798, in <module>
    from . import _orthogonal
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/scipy/special/_orthogonal.py", line 81, in <module>
    from scipy import linalg
  File "<frozen importlib._bootstrap>", line 1229, in _handle_fromlist
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/scipy/__init__.py", line 131, in __getattr__
    return _importlib.import_module(f'scipy.{name}')
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/scipy/linalg/__init__.py", line 215, in <module>
    from ._matfuncs import *
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/scipy/linalg/_matfuncs.py", line 20, in <module>
    from ._expm_frechet import expm_frechet, expm_cond
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/scipy/linalg/_expm_frechet.py", line 357, in <module>
    @_apply_over_batch(('A', 2))
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/scipy/_lib/_util.py", line 1259, in decorator
    doc = FunctionDoc(wrapper)
          ^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/scipy/_lib/_docscrape.py", line 589, in __init__
    NumpyDocString.__init__(self, doc, config)
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/scipy/_lib/_docscrape.py", line 142, in __init__
    docstring = textwrap.dedent(docstring).split("\n")
                ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/textwrap.py", line 435, in dedent
    text = _whitespace_only_re.sub('', text)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
KeyboardInterrupt
^C
(1) m@m:~$ autorag run_web --yaml_path project_dir/config.yaml --project_dir project_dir
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(


^C^CError in sys.excepthook:
Traceback (most recent call last):
  File "/home/m/miniconda3/envs/1/lib/python3.11/logging/__init__.py", line 978, in handle
    self.emit(record)
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/rich/logging.py", line 178, in emit
    self.console.print(log_renderable)
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/rich/console.py", line 1719, in print
    extend(render(renderable, render_options))
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/rich/console.py", line 1340, in render
    for render_output in iter_render:
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/rich/table.py", line 515, in __rich_console__
    yield from self._render(console, render_options, widths)
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/rich/table.py", line 829, in _render
    lines = console.render_lines(
            ^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/rich/console.py", line 1380, in render_lines
    lines = list(
            ^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/rich/segment.py", line 305, in split_and_crop_lines
    for segment in segments:
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/rich/console.py", line 1340, in render
    for render_output in iter_render:
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/rich/padding.py", line 97, in __rich_console__
    lines = console.render_lines(
            ^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/rich/console.py", line 1380, in render_lines
    lines = list(
            ^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/rich/segment.py", line 305, in split_and_crop_lines
    for segment in segments:
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/rich/console.py", line 1344, in render
    yield from self.render(render_output, _options)
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/rich/console.py", line 1344, in render
    yield from self.render(render_output, _options)
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/rich/console.py", line 1344, in render
    yield from self.render(render_output, _options)
  [Previous line repeated 1 more time]
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/rich/console.py", line 1340, in render
    for render_output in iter_render:
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/rich/panel.py", line 230, in __rich_console__
    lines = console.render_lines(renderable, child_options, style=style)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/rich/console.py", line 1380, in render_lines
    lines = list(
            ^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/rich/segment.py", line 305, in split_and_crop_lines
    for segment in segments:
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/rich/console.py", line 1340, in render
    for render_output in iter_render:
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/rich/padding.py", line 97, in __rich_console__
    lines = console.render_lines(
            ^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/rich/console.py", line 1380, in render_lines
    lines = list(
            ^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/rich/segment.py", line 305, in split_and_crop_lines
    for segment in segments:
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/rich/console.py", line 1344, in render
    yield from self.render(render_output, _options)
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/rich/console.py", line 1340, in render
    for render_output in iter_render:
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/rich/syntax.py", line 628, in __rich_console__
    segments = Segments(self._get_syntax(console, options))
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/rich/segment.py", line 681, in __init__
    self.segments = list(segments)
                    ^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/rich/syntax.py", line 654, in _get_syntax
    text = self.highlight(processed_code, self.line_range)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/rich/syntax.py", line 522, in highlight
    text.append_tokens(tokens_to_spans())
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/rich/text.py", line 1046, in append_tokens
    for content, style in tokens:
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/rich/syntax.py", line 508, in tokens_to_spans
    _token_type, token = next(tokens)
                         ^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/rich/syntax.py", line 494, in line_tokenize
    for token_type, token in lexer.get_tokens(code):
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pygments/lexer.py", line 270, in streamer
    for _, t, v in self.get_tokens_unprocessed(text):
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pygments/lexer.py", line 712, in get_tokens_unprocessed
    m = rexmatch(text, pos)
        ^^^^^^^^^^^^^^^^^^^
KeyboardInterrupt

Original exception was:
Traceback (most recent call last):
  File "/home/m/miniconda3/envs/1/bin/autorag", line 5, in <module>
    from autorag.cli import cli
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/cli.py", line 13, in <module>
    from autorag.deploy import extract_best_config as original_extract_best_config
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/deploy/__init__.py", line 9, in <module>
    from .gradio import GradioRunner
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/deploy/gradio.py", line 8, in <module>
    import gradio as gr
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/gradio/__init__.py", line 3, in <module>
    import gradio._simple_templates
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/gradio/_simple_templates/__init__.py", line 1, in <module>
    from .simpledropdown import SimpleDropdown
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/gradio/_simple_templates/simpledropdown.py", line 7, in <module>
    from gradio.components.base import Component, FormComponent
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/gradio/components/__init__.py", line 1, in <module>
    from gradio.components.annotated_image import AnnotatedImage
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/gradio/components/annotated_image.py", line 14, in <module>
    from gradio import processing_utils, utils
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/gradio/processing_utils.py", line 29, in <module>
    from gradio import utils, wasm_utils
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/gradio/utils.py", line 68, in <module>
    from gradio.data_classes import (
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/gradio/data_classes.py", line 21, in <module>
    from fastapi import Request
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/fastapi/__init__.py", line 7, in <module>
    from .applications import FastAPI as FastAPI
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/fastapi/applications.py", line 16, in <module>
    from fastapi import routing
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/fastapi/routing.py", line 24, in <module>
    from fastapi import params
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/fastapi/params.py", line 5, in <module>
    from fastapi.openapi.models import Example
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/fastapi/openapi/models.py", line 273, in <module>
    class Header(ParameterBase):
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_model_construction.py", line 224, in __new__
    complete_model_class(
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_model_construction.py", line 577, in complete_model_class
    schema = cls.__get_pydantic_core_schema__(cls, handler)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/main.py", line 671, in __get_pydantic_core_schema__
    return handler(source)
           ^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_schema_generation_shared.py", line 83, in __call__
    schema = self._handler(source_type)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_generate_schema.py", line 655, in generate_schema
    schema = self._generate_schema_inner(obj)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_generate_schema.py", line 924, in _generate_schema_inner
    return self._model_schema(obj)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_generate_schema.py", line 739, in _model_schema
    {k: self._generate_md_field_schema(k, v, decorators) for k, v in fields.items()},
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_generate_schema.py", line 739, in <dictcomp>
    {k: self._generate_md_field_schema(k, v, decorators) for k, v in fields.items()},
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_generate_schema.py", line 1115, in _generate_md_field_schema
    common_field = self._common_field_schema(name, field_info, decorators)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_generate_schema.py", line 1308, in _common_field_schema
    schema = self._apply_annotations(
             ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_generate_schema.py", line 2107, in _apply_annotations
    schema = get_inner_schema(source_type)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_schema_generation_shared.py", line 83, in __call__
    schema = self._handler(source_type)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_generate_schema.py", line 2088, in inner_handler
    schema = self._generate_schema_inner(obj)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_generate_schema.py", line 929, in _generate_schema_inner
    return self.match_type(obj)
           ^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_generate_schema.py", line 1029, in match_type
    return self._match_generic_type(obj, origin)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_generate_schema.py", line 1058, in _match_generic_type
    return self._union_schema(obj)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_generate_schema.py", line 1378, in _union_schema
    choices.append(self.generate_schema(arg))
                   ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_generate_schema.py", line 650, in generate_schema
    from_property = self._generate_schema_from_property(obj, obj)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_generate_schema.py", line 821, in _generate_schema_from_property
    schema = get_schema(
             ^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/main.py", line 671, in __get_pydantic_core_schema__
    return handler(source)
           ^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_schema_generation_shared.py", line 83, in __call__
    schema = self._handler(source_type)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_generate_schema.py", line 924, in _generate_schema_inner
    return self._model_schema(obj)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_generate_schema.py", line 739, in _model_schema
    {k: self._generate_md_field_schema(k, v, decorators) for k, v in fields.items()},
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_generate_schema.py", line 739, in <dictcomp>
    {k: self._generate_md_field_schema(k, v, decorators) for k, v in fields.items()},
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_generate_schema.py", line 1115, in _generate_md_field_schema
    common_field = self._common_field_schema(name, field_info, decorators)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_generate_schema.py", line 1308, in _common_field_schema
    schema = self._apply_annotations(
             ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_generate_schema.py", line 2107, in _apply_annotations
    schema = get_inner_schema(source_type)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_schema_generation_shared.py", line 83, in __call__
    schema = self._handler(source_type)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_generate_schema.py", line 2088, in inner_handler
    schema = self._generate_schema_inner(obj)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_generate_schema.py", line 929, in _generate_schema_inner
    return self.match_type(obj)
           ^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_generate_schema.py", line 1029, in match_type
    return self._match_generic_type(obj, origin)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_generate_schema.py", line 1058, in _match_generic_type
    return self._union_schema(obj)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_generate_schema.py", line 1378, in _union_schema
    choices.append(self.generate_schema(arg))
                   ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_generate_schema.py", line 620, in generate_schema
    def generate_schema(

KeyboardInterrupt

(1) m@m:~$ autorag run_web --yaml_path project_dir/config.yaml --project_dir project_dir
^CTraceback (most recent call last):
  File "/home/m/miniconda3/envs/1/bin/autorag", line 5, in <module>
    from autorag.cli import cli
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/__init__.py", line 11, in <module>
    from llama_index.llms.bedrock import Bedrock
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/llama_index/llms/bedrock/__init__.py", line 1, in <module>
    from llama_index.llms.bedrock.base import (
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/llama_index/llms/bedrock/base.py", line 30, in <module>
    from llama_index.llms.bedrock.utils import (
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/llama_index/llms/bedrock/utils.py", line 10, in <module>
    from llama_index.llms.anthropic.utils import messages_to_anthropic_messages
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/llama_index/llms/anthropic/__init__.py", line 1, in <module>
    from llama_index.llms.anthropic.base import Anthropic
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/llama_index/llms/anthropic/base.py", line 35, in <module>
    from llama_index.llms.anthropic.utils import (
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/llama_index/llms/anthropic/utils.py", line 16, in <module>
    from anthropic.types import (
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/anthropic/__init__.py", line 5, in <module>
    from . import types
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/anthropic/types/__init__.py", line 57, in <module>
    from .message_stream_event import MessageStreamEvent as MessageStreamEvent
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/anthropic/types/message_stream_event.py", line 3, in <module>
    from .raw_message_stream_event import RawMessageStreamEvent
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/anthropic/types/raw_message_stream_event.py", line 11, in <module>
    from .raw_content_block_delta_event import RawContentBlockDeltaEvent
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/anthropic/types/raw_content_block_delta_event.py", line 6, in <module>
    from .raw_content_block_delta import RawContentBlockDelta
  File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1138, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1078, in _find_spec
  File "/home/m/miniconda3/envs/1/lib/python3.11/site-packages/_distutils_hack/__init__.py", line 101, in find_spec
    def find_spec(self, fullname, path, target=None):

KeyboardInterrupt
^C
(1) m@m:~$ autorag run_web --yaml_path config.yaml --project_dir project_dir
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
[06/29/25 21:16:22] INFO     [config.py:54] >> PyTorch version 2.7.1 available.                                                                  config.py:54
  You can now view your Streamlit app in your browser.

  Local URL: http://localhost:8501
  Network URL: http://172.21.151.42:8501

gio: http://localhost:8501: Operation not supported
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
[06/29/25 21:16:46] INFO     [config.py:54] >> PyTorch version 2.7.1 available.                                                                  config.py:54[06/29/25 21:16:48] INFO     [base.py:18] >> Initialize retrieval node - VectorDB                                                                  base.py:18[06/29/25 21:16:49] INFO     [SentenceTransformer.py:219] >> Load pretrained SentenceTransformer:                                  SentenceTransformer.py:219                             sentence-transformers/all-mpnet-base-v2
[06/29/25 21:16:53] INFO     [SentenceTransformer.py:358] >> 2 prompts are loaded, with the keys: ['query', 'text']                SentenceTransformer.py:358                    INFO     [posthog.py:22] >> Anonymized telemetry enabled. See                     https://docs.trychroma.com/telemetry for  posthog.py:22                             more information.
                    ERROR    [posthog.py:61] >> Failed to send telemetry event ClientStartEvent: capture() takes 1 positional argument but 3    posthog.py:61                             were given
                    ERROR    [posthog.py:61] >> Failed to send telemetry event ClientCreateCollectionEvent: capture() takes 1 positional        posthog.py:61                             argument but 3 were given
                    INFO     [base.py:15] >> Initialize prompt maker node - Fstring module...                                                      base.py:15                    INFO     [base.py:19] >> Initialize generator node - LlamaIndexLLM                                                             base.py:19[06/29/25 21:17:32] INFO     [base.py:18] >> Initialize retrieval node - VectorDB                                                                  base.py:18                    ERROR    [posthog.py:61] >> Failed to send telemetry event ClientStartEvent: capture() takes 1 positional argument but 3    posthog.py:61                             were given
                    ERROR    [posthog.py:61] >> Failed to send telemetry event ClientCreateCollectionEvent: capture() takes 1 positional        posthog.py:61                             argument but 3 were given
                    INFO     [base.py:15] >> Initialize prompt maker node - Fstring module...                                                      base.py:15                    INFO     [base.py:19] >> Initialize generator node - LlamaIndexLLM                                                             base.py:19                    INFO     [base.py:31] >> Running retrieval node - VectorDB module...                                                           base.py:31────────────────────────── Traceback (most recent call last) ───────────────────────────
  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/streamlit/runtime/scriptrunne
  r/exec_code.py:128 in exec_func_with_error_handling

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/streamlit/runtime/scriptrunne
  r/script_runner.py:669 in code_to_exec

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:81 in <module>

    78
    79
    80 if __name__ == "__main__":
  ❱ 81 │   run_web_server()
    82

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1442 in
  __call__

    1439 │
    1440 │   def __call__(self, *args: t.Any, **kwargs: t.Any) -> t.Any:
    1441 │   │   """Alias for :meth:`main`."""
  ❱ 1442 │   │   return self.main(*args, **kwargs)
    1443
    1444
    1445 class _FakeSubclassCheck(type):

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1363 in main

    1360 │   │   try:
    1361 │   │   │   try:
    1362 │   │   │   │   with self.make_context(prog_name, args, **extra) as ctx:
  ❱ 1363 │   │   │   │   │   rv = self.invoke(ctx)
    1364 │   │   │   │   │   if not standalone_mode:
    1365 │   │   │   │   │   │   return rv
    1366 │   │   │   │   │   # it's not safe to `ctx.exit(rv)` here!

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1226 in invoke

    1223 │   │   │   echo(style(message, fg="red"), err=True)
    1224 │   │
    1225 │   │   if self.callback is not None:
  ❱ 1226 │   │   │   return ctx.invoke(self.callback, **ctx.params)
    1227 │
    1228 │   def shell_complete(self, ctx: Context, incomplete: str) -> list[Completio
    1229 │   │   """Return a list of completions for the incomplete value. Looks

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:794 in invoke

     791 │   │
     792 │   │   with augment_usage_errors(self):
     793 │   │   │   with ctx:
  ❱  794 │   │   │   │   return callback(*args, **kwargs)
     795 │
     796 │   def forward(self, cmd: Command, /, *args: t.Any, **kwargs: t.Any) -> t.An
     797 │   │   """Similar to :meth:`invoke` but fills in default keyword

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:77 in
  run_web_server

    74 │   set_initial_state()
    75 │   set_page_config()
    76 │   set_page_header()
  ❱ 77 │   chat_box(runner)
    78
    79
    80 if __name__ == "__main__":

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:60 in chat_box

    57 │   │   # Generate llama-index stream with user input
    58 │   │   with st.chat_message("assistant"):
    59 │   │   │   with st.spinner("Processing..."):
  ❱ 60 │   │   │   │   response = st.write(runner.run(query))
    61 │   │
    62 │   │   # Add the final response to messages state
    63 │   │   st.session_state["messages"].append({"role": "assistant", "content": re

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/deploy/base.py:226 in
  run

    223 │   │   for module_instance, module_param in zip(
    224 │   │   │   self.module_instances, self.module_params
    225 │   │   ):
  ❱ 226 │   │   │   new_result = module_instance.pure(
    227 │   │   │   │   previous_result=previous_result, **module_param
    228 │   │   │   )
    229 │   │   │   duplicated_columns = previous_result.columns.intersection(

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/utils/util.py:72 in
  wrapper

     69 │   def decorator_result_to_dataframe(func: Callable):
     70 │   │   @functools.wraps(func)
     71 │   │   def wrapper(*args, **kwargs) -> pd.DataFrame:
  ❱  72 │   │   │   results = func(*args, **kwargs)
     73 │   │   │   if len(column_names) == 1:
     74 │   │   │   │   df_input = {column_names[0]: results}
     75 │   │   │   else:

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/nodes/retrieval/vecto
  rdb.py:72 in pure

     69 │   def pure(self, previous_result: pd.DataFrame, *args, **kwargs):
     70 │   │   queries = self.cast_to_run(previous_result)
     71 │   │   pure_params = pop_params(self._pure, kwargs)
  ❱  72 │   │   ids, scores = self._pure(queries, **pure_params)
     73 │   │   contents = fetch_contents(self.corpus_df, ids)
     74 │   │   return contents, ids, scores
     75
────────────────────────────────────────────────────────────────────────────────────────
TypeError: VectorDB._pure() missing 1 required positional argument: 'top_k'
[06/29/25 21:18:17] INFO     [base.py:18] >> Initialize retrieval node - VectorDB                                                                  base.py:18                    ERROR    [posthog.py:61] >> Failed to send telemetry event ClientStartEvent: capture() takes 1 positional argument but 3    posthog.py:61                             were given
                    ERROR    [posthog.py:61] >> Failed to send telemetry event ClientCreateCollectionEvent: capture() takes 1 positional        posthog.py:61                             argument but 3 were given
                    INFO     [base.py:15] >> Initialize prompt maker node - Fstring module...                                                      base.py:15                    INFO     [base.py:19] >> Initialize generator node - LlamaIndexLLM                                                             base.py:19                    INFO     [base.py:23] >> Deleting generator module - LlamaIndexLLM                                                             base.py:23                    INFO     [base.py:20] >> Prompt maker node - Fstring module is deleted.                                                        base.py:20                    INFO     [base.py:28] >> Deleting retrieval node - VectorDB module...                                                          base.py:28[06/29/25 21:18:20] INFO     [base.py:18] >> Initialize retrieval node - VectorDB                                                                  base.py:18                    ERROR    [posthog.py:61] >> Failed to send telemetry event ClientStartEvent: capture() takes 1 positional argument but 3    posthog.py:61                             were given
                    ERROR    [posthog.py:61] >> Failed to send telemetry event ClientCreateCollectionEvent: capture() takes 1 positional        posthog.py:61                             argument but 3 were given
                    INFO     [base.py:15] >> Initialize prompt maker node - Fstring module...                                                      base.py:15                    INFO     [base.py:19] >> Initialize generator node - LlamaIndexLLM                                                             base.py:19                    INFO     [base.py:31] >> Running retrieval node - VectorDB module...                                                           base.py:31────────────────────────── Traceback (most recent call last) ───────────────────────────
  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/streamlit/runtime/scriptrunne
  r/exec_code.py:128 in exec_func_with_error_handling

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/streamlit/runtime/scriptrunne
  r/script_runner.py:669 in code_to_exec

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:81 in <module>

    78
    79
    80 if __name__ == "__main__":
  ❱ 81 │   run_web_server()
    82

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1442 in
  __call__

    1439 │
    1440 │   def __call__(self, *args: t.Any, **kwargs: t.Any) -> t.Any:
    1441 │   │   """Alias for :meth:`main`."""
  ❱ 1442 │   │   return self.main(*args, **kwargs)
    1443
    1444
    1445 class _FakeSubclassCheck(type):

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1363 in main

    1360 │   │   try:
    1361 │   │   │   try:
    1362 │   │   │   │   with self.make_context(prog_name, args, **extra) as ctx:
  ❱ 1363 │   │   │   │   │   rv = self.invoke(ctx)
    1364 │   │   │   │   │   if not standalone_mode:
    1365 │   │   │   │   │   │   return rv
    1366 │   │   │   │   │   # it's not safe to `ctx.exit(rv)` here!

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1226 in invoke

    1223 │   │   │   echo(style(message, fg="red"), err=True)
    1224 │   │
    1225 │   │   if self.callback is not None:
  ❱ 1226 │   │   │   return ctx.invoke(self.callback, **ctx.params)
    1227 │
    1228 │   def shell_complete(self, ctx: Context, incomplete: str) -> list[Completio
    1229 │   │   """Return a list of completions for the incomplete value. Looks

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:794 in invoke

     791 │   │
     792 │   │   with augment_usage_errors(self):
     793 │   │   │   with ctx:
  ❱  794 │   │   │   │   return callback(*args, **kwargs)
     795 │
     796 │   def forward(self, cmd: Command, /, *args: t.Any, **kwargs: t.Any) -> t.An
     797 │   │   """Similar to :meth:`invoke` but fills in default keyword

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:77 in
  run_web_server

    74 │   set_initial_state()
    75 │   set_page_config()
    76 │   set_page_header()
  ❱ 77 │   chat_box(runner)
    78
    79
    80 if __name__ == "__main__":

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:60 in chat_box

    57 │   │   # Generate llama-index stream with user input
    58 │   │   with st.chat_message("assistant"):
    59 │   │   │   with st.spinner("Processing..."):
  ❱ 60 │   │   │   │   response = st.write(runner.run(query))
    61 │   │
    62 │   │   # Add the final response to messages state
    63 │   │   st.session_state["messages"].append({"role": "assistant", "content": re

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/deploy/base.py:226 in
  run

    223 │   │   for module_instance, module_param in zip(
    224 │   │   │   self.module_instances, self.module_params
    225 │   │   ):
  ❱ 226 │   │   │   new_result = module_instance.pure(
    227 │   │   │   │   previous_result=previous_result, **module_param
    228 │   │   │   )
    229 │   │   │   duplicated_columns = previous_result.columns.intersection(

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/utils/util.py:72 in
  wrapper

     69 │   def decorator_result_to_dataframe(func: Callable):
     70 │   │   @functools.wraps(func)
     71 │   │   def wrapper(*args, **kwargs) -> pd.DataFrame:
  ❱  72 │   │   │   results = func(*args, **kwargs)
     73 │   │   │   if len(column_names) == 1:
     74 │   │   │   │   df_input = {column_names[0]: results}
     75 │   │   │   else:

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/nodes/retrieval/vecto
  rdb.py:72 in pure

     69 │   def pure(self, previous_result: pd.DataFrame, *args, **kwargs):
     70 │   │   queries = self.cast_to_run(previous_result)
     71 │   │   pure_params = pop_params(self._pure, kwargs)
  ❱  72 │   │   ids, scores = self._pure(queries, **pure_params)
     73 │   │   contents = fetch_contents(self.corpus_df, ids)
     74 │   │   return contents, ids, scores
     75
────────────────────────────────────────────────────────────────────────────────────────
TypeError: VectorDB._pure() missing 1 required positional argument: 'top_k'
[06/29/25 21:18:21] INFO     [base.py:28] >> Deleting retrieval node - VectorDB module...                                                          base.py:28                    INFO     [base.py:23] >> Deleting generator module - LlamaIndexLLM                                                             base.py:23                    INFO     [base.py:20] >> Prompt maker node - Fstring module is deleted.                                                        base.py:20^C  Stopping...
^C
Aborted!
(1) m@m:~$ autorag evaluate \
onfig pr>   --config project_dir/config.yaml \
>   --qa_data_path eli5_data/qa_train.parquet \
>   --corpus_data_path eli5_data/corpus.parquet \
--projec>   --project_dir project_dir

/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
[06/29/25 21:19:21] INFO     [config.py:54] >> PyTorch version 2.7.1 available.                                                                  config.py:54[06/29/25 21:19:24] ERROR    [__init__.py:53] >> Unexpected exception                                                                          __init__.py:53                             ╭────────────────────────────────────── Traceback (most recent call last) ──────────────────────────────────────╮
                             │ /home/m/miniconda3/envs/1/bin/autorag:8 in <module>                                                           │
                             │                                                                                                               │
                             │   5 from autorag.cli import cli                                                                               │
                             │   6 if __name__ == '__main__':                                                                                │
                             │   7 │   sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])                                      │
                             │ ❱ 8 │   sys.exit(cli())                                                                                       │
                             │   9                                                                                                           │
                             │                                                                                                               │
                             │ /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1442 in __call__                         │
                             │                                                                                                               │
                             │   1439 │                                                                                                      │
                             │   1440 │   def __call__(self, *args: t.Any, **kwargs: t.Any) -> t.Any:                                        │
                             │   1441 │   │   """Alias for :meth:`main`."""                                                                  │
                             │ ❱ 1442 │   │   return self.main(*args, **kwargs)                                                              │
                             │   1443                                                                                                        │
                             │   1444                                                                                                        │
                             │   1445 class _FakeSubclassCheck(type):                                                                        │
                             │                                                                                                               │
                             │ /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1363 in main                             │
                             │                                                                                                               │
                             │   1360 │   │   try:                                                                                           │
                             │   1361 │   │   │   try:                                                                                       │
                             │   1362 │   │   │   │   with self.make_context(prog_name, args, **extra) as ctx:                               │
                             │ ❱ 1363 │   │   │   │   │   rv = self.invoke(ctx)                                                              │
                             │   1364 │   │   │   │   │   if not standalone_mode:                                                            │
                             │   1365 │   │   │   │   │   │   return rv                                                                      │
                             │   1366 │   │   │   │   │   # it's not safe to `ctx.exit(rv)` here!                                            │
                             │                                                                                                               │
                             │ /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1830 in invoke                           │
                             │                                                                                                               │
                             │   1827 │   │   │   │   super().invoke(ctx)                                                                    │
                             │   1828 │   │   │   │   sub_ctx = cmd.make_context(cmd_name, args, parent=ctx)                                 │
                             │   1829 │   │   │   │   with sub_ctx:                                                                          │
                             │ ❱ 1830 │   │   │   │   │   return _process_result(sub_ctx.command.invoke(sub_ctx))                            │
                             │   1831 │   │                                                                                                  │
                             │   1832 │   │   # In chain mode we create the contexts step by step, but after the                             │
                             │   1833 │   │   # base command has been invoked.  Because at that point we do not                              │
                             │                                                                                                               │
                             │ /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1226 in invoke                           │
                             │                                                                                                               │
                             │   1223 │   │   │   echo(style(message, fg="red"), err=True)                                                   │
                             │   1224 │   │                                                                                                  │
                             │   1225 │   │   if self.callback is not None:                                                                  │
                             │ ❱ 1226 │   │   │   return ctx.invoke(self.callback, **ctx.params)                                             │
                             │   1227 │                                                                                                      │
                             │   1228 │   def shell_complete(self, ctx: Context, incomplete: str) -> list[CompletionItem]:                   │
                             │   1229 │   │   """Return a list of completions for the incomplete value. Looks                                │
                             │                                                                                                               │
                             │ /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:794 in invoke                            │
                             │                                                                                                               │
                             │    791 │   │                                                                                                  │
                             │    792 │   │   with augment_usage_errors(self):                                                               │
                             │    793 │   │   │   with ctx:                                                                                  │
                             │ ❱  794 │   │   │   │   return callback(*args, **kwargs)                                                       │
                             │    795 │                                                                                                      │
                             │    796 │   def forward(self, cmd: Command, /, *args: t.Any, **kwargs: t.Any) -> t.Any:                        │
                             │    797 │   │   """Similar to :meth:`invoke` but fills in default keyword                                      │
                             │                                                                                                               │
                             │ /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/cli.py:58 in evaluate                          │
                             │                                                                                                               │
                             │    55 │   if not config.endswith(".yaml") and not config.endswith(".yml"):                                    │
                             │    56 │   │   raise ValueError(f"Config file {config} is not a yaml or yml file.")                            │
                             │    57 │   if not os.path.exists(config):                                                                      │
                             │ ❱  58 │   │   raise ValueError(f"Config file {config} does not exist.")                                       │
                             │    59 │   evaluator = Evaluator(qa_data_path, corpus_data_path, project_dir=project_dir)                      │
                             │    60 │   evaluator.start_trial(config, skip_validation=skip_validation)                                      │
                             │    61                                                                                                         │
                             ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
                             ValueError: Config file project_dir/config.yaml does not exist.
(1) m@m:~$
(1) m@m:~$ autorag evaluate \
onfig co>   --config config.yaml \
a_path eli5_data/qa_train.parquet \
  --corpus_data_path eli5_data/corpus.parquet \
  --project_dir project_dir
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
[06/29/25 21:21:58] INFO     [config.py:54] >> PyTorch version 2.7.1 available.                                                                  config.py:54Usage: autorag evaluate [OPTIONS]
Try 'autorag evaluate --help' for help.

Error: Got unexpected extra argument ( )
(1) m@m:~$   --qa_data_path eli5_data/qa_train.parquet \
>   --corpus_data_path eli5_data/corpus.parquet \
>   --project_dir project_dir
--qa_data_path: command not found
(1) m@m:~$ autorag evaluate \
nfig.yam>   --config config.yaml \
-qa_data_path eli5_data/qa_sample.parquet \
  --corpus_data_path eli5_data/corpus.parquet \
  --project_dir project_dir
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
[06/29/25 21:23:10] INFO     [config.py:54] >> PyTorch version 2.7.1 available.                                                                  config.py:54Usage: autorag evaluate [OPTIONS]
Try 'autorag evaluate --help' for help.

Error: Got unexpected extra argument ( )
(1) m@m:~$   --qa_data_path eli5_data/qa_sample.parquet \
>   --corpus_data_path eli5_data/corpus.parquet \
>   --project_dir project_dir
--qa_data_path: command not found
(1) m@m:~$ autorag evaluate --help
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
[06/29/25 21:24:21] INFO     [config.py:54] >> PyTorch version 2.7.1 available.                                                                  config.py:54Usage: autorag evaluate [OPTIONS]

Options:
  -c, --config TEXT          Path to config yaml file. Must be yaml or yml
                             file.
  --qa_data_path TEXT        Path to QA dataset. Must be parquet file.
  --corpus_data_path TEXT    Path to corpus dataset. Must be parquet file.
  --project_dir TEXT         Path to project directory.
  --skip_validation BOOLEAN  Skip validation or not. Default is False.
  --help                     Show this message and exit.
(1) m@m:~$ autorag evaluate \
onfig co>   --config config.yaml \
>   --qa_data_path eli5_data/qa_sample.parquet \
 --corpu>   --corpus_data_path eli5_data/corpus.parquet \
>   --project_dir project_dir

/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
[06/29/25 21:25:33] INFO     [config.py:54] >> PyTorch version 2.7.1 available.                                                                  config.py:54[06/29/25 21:25:44] INFO     [evaluator.py:127] >>                                                                                           evaluator.py:127                                             _        _____            _____
                                  /\        | |      |  __ \     /\   / ____|
                                 /  \  _   _| |_ ___ | |__) |   /  \ | |  __
                                / /\ \| | | | __/ _ \|  _  /   / /\ \| | |_ |
                               / ____ \ |_| | || (_) | | \ \  / ____ \ |__| |
                              /_/    \_\__,_|\__\___/|_|  \_\/_/    \_\_____|


                    INFO     [evaluator.py:128] >> Start Validation input data and config YAML file first. If you want to skip this, put the evaluator.py:128                             --skip_validation flag or `skip_validation` at the start_trial function.
[06/29/25 21:25:53] INFO     [SentenceTransformer.py:219] >> Load pretrained SentenceTransformer:                                  SentenceTransformer.py:219                             sentence-transformers/all-mpnet-base-v2
[06/29/25 21:25:56] INFO     [SentenceTransformer.py:358] >> 2 prompts are loaded, with the keys: ['query', 'text']                SentenceTransformer.py:358                    INFO     [posthog.py:22] >> Anonymized telemetry enabled. See                     https://docs.trychroma.com/telemetry for  posthog.py:22                             more information.
[06/29/25 21:25:57] ERROR    [posthog.py:61] >> Failed to send telemetry event ClientStartEvent: capture() takes 1 positional argument but 3    posthog.py:61                             were given
                    ERROR    [posthog.py:61] >> Failed to send telemetry event ClientCreateCollectionEvent: capture() takes 1 positional        posthog.py:61                             argument but 3 were given
                    ERROR    [posthog.py:61] >> Failed to send telemetry event CollectionGetEvent: capture() takes 1 positional argument but 3  posthog.py:61                             were given
[06/29/25 21:26:02] ERROR    [posthog.py:61] >> Failed to send telemetry event CollectionAddEvent: capture() takes 1 positional argument but 3  posthog.py:61                             were given
                    INFO     [evaluator.py:205] >> Running node line retrieve_node_line...                                                   evaluator.py:205                    INFO     [node.py:55] >> Running node retrieval...                                                                             node.py:55                    INFO     [run.py:165] >> Running retrieval node - semantic retrieval module...                                                 run.py:165                    INFO     [base.py:18] >> Initialize retrieval node - VectorDB                                                                  base.py:18                    ERROR    [posthog.py:61] >> Failed to send telemetry event ClientStartEvent: capture() takes 1 positional argument but 3    posthog.py:61                             were given
                    ERROR    [posthog.py:61] >> Failed to send telemetry event ClientCreateCollectionEvent: capture() takes 1 positional        posthog.py:61                             argument but 3 were given
                    INFO     [base.py:31] >> Running retrieval node - VectorDB module...                                                           base.py:31                    ERROR    [posthog.py:61] >> Failed to send telemetry event CollectionQueryEvent: capture() takes 1 positional argument but  posthog.py:61                             3 were given
                    INFO     [base.py:28] >> Deleting retrieval node - VectorDB module...                                                          base.py:28                    INFO     [run.py:196] >> Running retrieval node - lexical retrieval module...                                                  run.py:196                    INFO     [run.py:227] >> Running retrieval node - hybrid retrieval module...                                                   run.py:227                    INFO     [evaluator.py:205] >> Running node line post_retrieve_node_line...                                              evaluator.py:205                    INFO     [node.py:55] >> Running node prompt_maker...                                                                          node.py:55                    INFO     [base.py:15] >> Initialize prompt maker node - Fstring module...                                                      base.py:15                    INFO     [base.py:23] >> Running prompt maker node - Fstring module...                                                         base.py:23                    INFO     [base.py:20] >> Prompt maker node - Fstring module is deleted.                                                        base.py:20[06/29/25 21:26:06] INFO     [node.py:55] >> Running node generator...                                                                             node.py:55                    INFO     [base.py:19] >> Initialize generator node - LlamaIndexLLM                                                             base.py:19                    INFO     [base.py:26] >> Running generator node - LlamaIndexLLM module...                                                      base.py:26                    INFO     [_client.py:1025] >> HTTP Request: POST http://localhost:11434/api/show "HTTP/1.1 200 OK"                        _client.py:1025[06/29/25 21:26:57] INFO     [_client.py:1740] >> HTTP Request: POST http://localhost:11434/api/chat "HTTP/1.1 200 OK"                        _client.py:1740[06/29/25 21:27:30] INFO     [_client.py:1740] >> HTTP Request: POST http://localhost:11434/api/chat "HTTP/1.1 200 OK"                        _client.py:1740[06/29/25 21:28:14] INFO     [_client.py:1740] >> HTTP Request: POST http://localhost:11434/api/chat "HTTP/1.1 200 OK"                        _client.py:1740[06/29/25 21:29:00] INFO     [_client.py:1740] >> HTTP Request: POST http://localhost:11434/api/chat "HTTP/1.1 200 OK"                        _client.py:1740[06/29/25 21:29:54] INFO     [_client.py:1740] >> HTTP Request: POST http://localhost:11434/api/chat "HTTP/1.1 200 OK"                        _client.py:1740[06/29/25 21:29:57] INFO     [base.py:23] >> Deleting generator module - LlamaIndexLLM                                                             base.py:23Downloading builder script: 0.00B [00:00, ?B/s]
Downloading builder script: 7.95kB [00:00, 9.18MB/s]

Ingesting VectorDB... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 1/1 0:00:09
Ingesting VectorDB... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 1/1 0:00:09
Ingesting VectorDB... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 1/1 0:00:09
Ingesting VectorDB... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 1/1 0:00:09
Evaluating...         ━━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━  67% 2/3 0:05:52

                    INFO     [node.py:55] >> Running node prompt_maker...                                                                          node.py:55                    INFO     [base.py:15] >> Initialize prompt maker node - Fstring module...                                                      base.py:15                    INFO     [base.py:23] >> Running prompt maker node - Fstring module...                                                         base.py:23                    INFO     [base.py:20] >> Prompt maker node - Fstring module is deleted.                                                        base.py:20[06/29/25 21:26:06] INFO     [node.py:55] >> Running node generator...                                                                             node.py:55                    INFO     [base.py:19] >> Initialize generator node - LlamaIndexLLM                                                             base.py:19                    INFO     [base.py:26] >> Running generator node - LlamaIndexLLM module...                                                      base.py:26                    INFO     [_client.py:1025] >> HTTP Request: POST http://localhost:11434/api/show "HTTP/1.1 200 OK"                        _client.py:1025[06/29/25 21:26:57] INFO     [_client.py:1740] >> HTTP Request: POST http://localhost:11434/api/chat "HTTP/1.1 200 OK"                        _client.py:1740[06/29/25 21:27:30] INFO     [_client.py:1740] >> HTTP Request: POST http://localhost:11434/api/chat "HTTP/1.1 200 OK"                        _client.py:1740[06/29/25 21:28:14] INFO     [_client.py:1740] >> HTTP Request: POST http://localhost:11434/api/chat "HTTP/1.1 200 OK"                        _client.py:1740[06/29/25 21:29:00] INFO     [_client.py:1740] >> HTTP Request: POST http://localhost:11434/api/chat "HTTP/1.1 200 OK"                        _client.py:1740[06/29/25 21:29:54] INFO     [_client.py:1740] >> HTTP Request: POST http://localhost:11434/api/chat "HTTP/1.1 200 OK"                        _client.py:1740[06/29/25 21:29:57] INFO     [base.py:23] >> Deleting generator module - LlamaIndexLLM                                                             base.py:23Downloading builder script: 0.00B [00:00, ?B/s]
Downloading builder script: 7.95kB [00:00, 9.18MB/s]

Ingesting VectorDB... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 1/1 0:00:09
Ingesting VectorDB... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 1/1 0:00:09
Ingesting VectorDB... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 1/1 0:00:09
Ingesting VectorDB... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 1/1 0:00:09
[06/29/25 21:34:37] INFO     [evaluator.py:218] >> Evaluation complete.                                                                      evaluator.py:218
Ingesting VectorDB... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 1/1 0:00:09
Evaluating...         ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 3/3 0:08:35
                    INFO     [validator.py:98] >> Validation complete.                                                                        validator.py:98
                    INFO     [posthog.py:22] >> Anonymized telemetry enabled. See                     https://docs.trychroma.com/telemetry for  posthog.py:22
                             more information.
                    ERROR    [posthog.py:61] >> Failed to send telemetry event ClientStartEvent: capture() takes 1 positional argument but 3    posthog.py:61
                             were given
                    ERROR    [posthog.py:61] >> Failed to send telemetry event ClientCreateCollectionEvent: capture() takes 1 positional        posthog.py:61
                             argument but 3 were given
[06/29/25 21:34:46] ERROR    [posthog.py:61] >> Failed to send telemetry event CollectionGetEvent: capture() takes 1 positional argument but 3  posthog.py:61
                             were given
Ingesting VectorDB... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━   0% 0/1 0:00:28




TypeError: VectorDB._pure() missing 1 required positional argument: 'top_k'
[06/29/25 22:16:48] INFO     [base.py:28] >> Deleting retrieval node - VectorDB module...                                                          base.py:28
                    INFO     [base.py:23] >> Deleting generator module - LlamaIndexLLM                                                             base.py:23
                    INFO     [base.py:20] >> Prompt maker node - Fstring module is deleted.                                                        base.py:20





^C
(1) m@m:~$ autorag run_web --yaml_path config.yaml --project_dir ./project_dir
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
[06/29/25 22:16:11] INFO     [config.py:54] >> PyTorch version 2.7.1 available.                                                                  config.py:54

  You can now view your Streamlit app in your browser.

  Local URL: http://localhost:8501
  Network URL: http://172.21.151.42:8501

gio: http://localhost:8501: Operation not supported
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
[06/29/25 22:16:32] INFO     [config.py:54] >> PyTorch version 2.7.1 available.                                                                  config.py:54
[06/29/25 22:16:34] INFO     [base.py:18] >> Initialize retrieval node - VectorDB                                                                  base.py:18
[06/29/25 22:16:35] INFO     [SentenceTransformer.py:219] >> Load pretrained SentenceTransformer:                                  SentenceTransformer.py:219
                             sentence-transformers/all-mpnet-base-v2
[06/29/25 22:16:37] INFO     [base.py:18] >> Initialize retrieval node - VectorDB                                                                  base.py:18
                    INFO     [SentenceTransformer.py:219] >> Load pretrained SentenceTransformer:                                  SentenceTransformer.py:219
                             sentence-transformers/all-mpnet-base-v2
[06/29/25 22:16:39] INFO     [SentenceTransformer.py:358] >> 2 prompts are loaded, with the keys: ['query', 'text']                SentenceTransformer.py:358
                    INFO     [posthog.py:22] >> Anonymized telemetry enabled. See                     https://docs.trychroma.com/telemetry for  posthog.py:22
                             more information.
                    ERROR    [posthog.py:61] >> Failed to send telemetry event ClientStartEvent: capture() takes 1 positional argument but 3    posthog.py:61
                             were given
                    ERROR    [posthog.py:61] >> Failed to send telemetry event ClientCreateCollectionEvent: capture() takes 1 positional        posthog.py:61
                             argument but 3 were given
                    INFO     [base.py:15] >> Initialize prompt maker node - Fstring module...                                                      base.py:15
                    INFO     [base.py:19] >> Initialize generator node - LlamaIndexLLM                                                             base.py:19
[06/29/25 22:16:40] INFO     [SentenceTransformer.py:358] >> 2 prompts are loaded, with the keys: ['query', 'text']                SentenceTransformer.py:358
                    ERROR    [posthog.py:61] >> Failed to send telemetry event ClientStartEvent: capture() takes 1 positional argument but 3    posthog.py:61
                             were given
                    ERROR    [posthog.py:61] >> Failed to send telemetry event ClientCreateCollectionEvent: capture() takes 1 positional        posthog.py:61
                             argument but 3 were given
                    INFO     [base.py:15] >> Initialize prompt maker node - Fstring module...                                                      base.py:15
                    INFO     [base.py:19] >> Initialize generator node - LlamaIndexLLM                                                             base.py:19
                    INFO     [base.py:23] >> Deleting generator module - LlamaIndexLLM                                                             base.py:23
                    INFO     [base.py:20] >> Prompt maker node - Fstring module is deleted.                                                        base.py:20
                    INFO     [base.py:28] >> Deleting retrieval node - VectorDB module...                                                          base.py:28
[06/29/25 22:16:42] INFO     [base.py:18] >> Initialize retrieval node - VectorDB                                                                  base.py:18
[06/29/25 22:16:43] ERROR    [posthog.py:61] >> Failed to send telemetry event ClientStartEvent: capture() takes 1 positional argument but 3    posthog.py:61
                             were given
                    ERROR    [posthog.py:61] >> Failed to send telemetry event ClientCreateCollectionEvent: capture() takes 1 positional        posthog.py:61
                             argument but 3 were given
                    INFO     [base.py:15] >> Initialize prompt maker node - Fstring module...                                                      base.py:15
                    INFO     [base.py:19] >> Initialize generator node - LlamaIndexLLM                                                             base.py:19
                    INFO     [base.py:31] >> Running retrieval node - VectorDB module...                                                           base.py:31
────────────────────────── Traceback (most recent call last) ───────────────────────────
  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/streamlit/runtime/scriptrunne
  r/exec_code.py:128 in exec_func_with_error_handling

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/streamlit/runtime/scriptrunne
  r/script_runner.py:669 in code_to_exec

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:81 in <module>

    78
    79
    80 if __name__ == "__main__":
  ❱ 81 │   run_web_server()
    82

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1442 in
  __call__

    1439 │
    1440 │   def __call__(self, *args: t.Any, **kwargs: t.Any) -> t.Any:
    1441 │   │   """Alias for :meth:`main`."""
  ❱ 1442 │   │   return self.main(*args, **kwargs)
    1443
    1444
    1445 class _FakeSubclassCheck(type):

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1363 in main

    1360 │   │   try:
    1361 │   │   │   try:
    1362 │   │   │   │   with self.make_context(prog_name, args, **extra) as ctx:
  ❱ 1363 │   │   │   │   │   rv = self.invoke(ctx)
    1364 │   │   │   │   │   if not standalone_mode:
    1365 │   │   │   │   │   │   return rv
    1366 │   │   │   │   │   # it's not safe to `ctx.exit(rv)` here!

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1226 in invoke

    1223 │   │   │   echo(style(message, fg="red"), err=True)
    1224 │   │
    1225 │   │   if self.callback is not None:
  ❱ 1226 │   │   │   return ctx.invoke(self.callback, **ctx.params)
    1227 │
    1228 │   def shell_complete(self, ctx: Context, incomplete: str) -> list[Completio
    1229 │   │   """Return a list of completions for the incomplete value. Looks

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:794 in invoke

     791 │   │
     792 │   │   with augment_usage_errors(self):
     793 │   │   │   with ctx:
  ❱  794 │   │   │   │   return callback(*args, **kwargs)
     795 │
     796 │   def forward(self, cmd: Command, /, *args: t.Any, **kwargs: t.Any) -> t.An
     797 │   │   """Similar to :meth:`invoke` but fills in default keyword

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:77 in
  run_web_server

    74 │   set_initial_state()
    75 │   set_page_config()
    76 │   set_page_header()
  ❱ 77 │   chat_box(runner)
    78
    79
    80 if __name__ == "__main__":

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:60 in chat_box

    57 │   │   # Generate llama-index stream with user input
    58 │   │   with st.chat_message("assistant"):
    59 │   │   │   with st.spinner("Processing..."):
  ❱ 60 │   │   │   │   response = st.write(runner.run(query))
    61 │   │
    62 │   │   # Add the final response to messages state
    63 │   │   st.session_state["messages"].append({"role": "assistant", "content": re

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/deploy/base.py:226 in
  run

    223 │   │   for module_instance, module_param in zip(
    224 │   │   │   self.module_instances, self.module_params
    225 │   │   ):
  ❱ 226 │   │   │   new_result = module_instance.pure(
    227 │   │   │   │   previous_result=previous_result, **module_param
    228 │   │   │   )
    229 │   │   │   duplicated_columns = previous_result.columns.intersection(

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/utils/util.py:72 in
  wrapper

     69 │   def decorator_result_to_dataframe(func: Callable):
     70 │   │   @functools.wraps(func)
     71 │   │   def wrapper(*args, **kwargs) -> pd.DataFrame:
  ❱  72 │   │   │   results = func(*args, **kwargs)
     73 │   │   │   if len(column_names) == 1:
     74 │   │   │   │   df_input = {column_names[0]: results}
     75 │   │   │   else:

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/nodes/retrieval/vecto
  rdb.py:72 in pure

     69 │   def pure(self, previous_result: pd.DataFrame, *args, **kwargs):
     70 │   │   queries = self.cast_to_run(previous_result)
     71 │   │   pure_params = pop_params(self._pure, kwargs)
  ❱  72 │   │   ids, scores = self._pure(queries, **pure_params)
     73 │   │   contents = fetch_contents(self.corpus_df, ids)
     74 │   │   return contents, ids, scores
     75
────────────────────────────────────────────────────────────────────────────────────────
TypeError: VectorDB._pure() missing 1 required positional argument: 'top_k'
[06/29/25 22:16:47] INFO     [base.py:18] >> Initialize retrieval node - VectorDB                                                                  base.py:18
                    ERROR    [posthog.py:61] >> Failed to send telemetry event ClientStartEvent: capture() takes 1 positional argument but 3    posthog.py:61
                             were given
                    ERROR    [posthog.py:61] >> Failed to send telemetry event ClientCreateCollectionEvent: capture() takes 1 positional        posthog.py:61
                             argument but 3 were given
                    INFO     [base.py:15] >> Initialize prompt maker node - Fstring module...                                                      base.py:15
                    INFO     [base.py:19] >> Initialize generator node - LlamaIndexLLM                                                             base.py:19
                    INFO     [base.py:31] >> Running retrieval node - VectorDB module...                                                           base.py:31
────────────────────────── Traceback (most recent call last) ───────────────────────────
  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/streamlit/runtime/scriptrunne
  r/exec_code.py:128 in exec_func_with_error_handling

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/streamlit/runtime/scriptrunne
  r/script_runner.py:669 in code_to_exec

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:81 in <module>

    78
    79
    80 if __name__ == "__main__":
  ❱ 81 │   run_web_server()
    82

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1442 in
  __call__

    1439 │
    1440 │   def __call__(self, *args: t.Any, **kwargs: t.Any) -> t.Any:
    1441 │   │   """Alias for :meth:`main`."""
  ❱ 1442 │   │   return self.main(*args, **kwargs)
    1443
    1444
    1445 class _FakeSubclassCheck(type):

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1363 in main

    1360 │   │   try:
    1361 │   │   │   try:
    1362 │   │   │   │   with self.make_context(prog_name, args, **extra) as ctx:
  ❱ 1363 │   │   │   │   │   rv = self.invoke(ctx)
    1364 │   │   │   │   │   if not standalone_mode:
    1365 │   │   │   │   │   │   return rv
    1366 │   │   │   │   │   # it's not safe to `ctx.exit(rv)` here!

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:1226 in invoke

    1223 │   │   │   echo(style(message, fg="red"), err=True)
    1224 │   │
    1225 │   │   if self.callback is not None:
  ❱ 1226 │   │   │   return ctx.invoke(self.callback, **ctx.params)
    1227 │
    1228 │   def shell_complete(self, ctx: Context, incomplete: str) -> list[Completio
    1229 │   │   """Return a list of completions for the incomplete value. Looks

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/click/core.py:794 in invoke

     791 │   │
     792 │   │   with augment_usage_errors(self):
     793 │   │   │   with ctx:
  ❱  794 │   │   │   │   return callback(*args, **kwargs)
     795 │
     796 │   def forward(self, cmd: Command, /, *args: t.Any, **kwargs: t.Any) -> t.An
     797 │   │   """Similar to :meth:`invoke` but fills in default keyword

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:77 in
  run_web_server

    74 │   set_initial_state()
    75 │   set_page_config()
    76 │   set_page_header()
  ❱ 77 │   chat_box(runner)
    78
    79
    80 if __name__ == "__main__":

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/web.py:60 in chat_box

    57 │   │   # Generate llama-index stream with user input
    58 │   │   with st.chat_message("assistant"):
    59 │   │   │   with st.spinner("Processing..."):
  ❱ 60 │   │   │   │   response = st.write(runner.run(query))
    61 │   │
    62 │   │   # Add the final response to messages state
    63 │   │   st.session_state["messages"].append({"role": "assistant", "content": re

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/deploy/base.py:226 in
  run

    223 │   │   for module_instance, module_param in zip(
    224 │   │   │   self.module_instances, self.module_params
    225 │   │   ):
  ❱ 226 │   │   │   new_result = module_instance.pure(
    227 │   │   │   │   previous_result=previous_result, **module_param
    228 │   │   │   )
    229 │   │   │   duplicated_columns = previous_result.columns.intersection(

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/utils/util.py:72 in
  wrapper

     69 │   def decorator_result_to_dataframe(func: Callable):
     70 │   │   @functools.wraps(func)
     71 │   │   def wrapper(*args, **kwargs) -> pd.DataFrame:
  ❱  72 │   │   │   results = func(*args, **kwargs)
     73 │   │   │   if len(column_names) == 1:
     74 │   │   │   │   df_input = {column_names[0]: results}
     75 │   │   │   else:

  /home/m/miniconda3/envs/1/lib/python3.11/site-packages/autorag/nodes/retrieval/vecto
  rdb.py:72 in pure

     69 │   def pure(self, previous_result: pd.DataFrame, *args, **kwargs):
     70 │   │   queries = self.cast_to_run(previous_result)
     71 │   │   pure_params = pop_params(self._pure, kwargs)
  ❱  72 │   │   ids, scores = self._pure(queries, **pure_params)
     73 │   │   contents = fetch_contents(self.corpus_df, ids)
     74 │   │   return contents, ids, scores
     75
────────────────────────────────────────────────────────────────────────────────────────
TypeError: VectorDB._pure() missing 1 required positional argument: 'top_k'
[06/29/25 22:16:48] INFO     [base.py:28] >> Deleting retrieval node - VectorDB module...                                                          base.py:28
                    INFO     [base.py:23] >> Deleting generator module - LlamaIndexLLM                                                             base.py:23
                    INFO     [base.py:20] >> Prompt maker node - Fstring module is deleted.                                                        base.py:20






config.yaml




vectordb:
  - name: mpnet_base_chroma
    db_type: chroma
    client_type: persistent
    embedding_model: huggingface_all_mpnet_base_v2
    collection_name: huggingface_all_mpnet_base_v2
    path: ${PROJECT_DIR}/data/chroma

node_lines:
  - node_line_name: retrieve_node_line
    nodes:
      - node_type: retrieval
        strategy:
          metrics: [retrieval_f1, retrieval_recall, retrieval_precision]
        top_k: 5  # تحديد عدد النتائج العليا
        modules:
          - module_type: vectordb
            vectordb: mpnet_base_chroma
  - node_line_name: post_retrieve_node_line
    nodes:
      - node_type: prompt_maker
        strategy:
          metrics: [meteor, rouge, bert_score]
        modules:
          - module_type: fstring
            prompt: "Read the passages and answer the given question. \n Question: {query} \n Passage: {retrieved_contents} \n Answer : "
      - node_type: generator
        strategy:
          metrics: [bleu, rouge, bert_score]
        modules:
          - module_type: llama_index_llm
            llm: ollama
            model: qwen2.5:3b
            batch: 1
            request_timeout: 1000  # يمكنك زيادة هذه القيمة إذا كان النموذج كبيرًا (بطيئًا)


vectordb:
  - name: baai_chroma
    db_type: chroma
    client_type: persistent
    embedding_model: huggingface_baai_bge_small
    collection_name: huggingface_baai_bge_small
    path: ${PROJECT_DIR}/data/chroma
node_lines:
- node_line_name: retrieve_node_line  # Arbitrary node line name
  nodes:
    - node_type: retrieval
      strategy:
        metrics: [ retrieval_f1, retrieval_recall, retrieval_precision ]
      top_k: 3
      modules:
        - module_type: vectordb
          vectordb: baai_chroma
- node_line_name: post_retrieve_node_line  # Arbitrary node line name
  nodes:
    - node_type: prompt_maker
      strategy:
        metrics: [ meteor, rouge, bert_score ]
      modules:
        - module_type: fstring
          prompt: "Read the passages and answer the given question. \n Question: {query} \n Passage: {retrieved_contents} \n Answer : "
    - node_type: generator
      strategy:
        metrics: [ bleu, rouge, bert_score ]
      modules:
        - module_type: vllm
          llm: mistralai/Mistral-7B-Instruct-v0.2
















(1) m@m:~$ autorag run_web --yaml_path simple_local.yaml --project_dir project_dir
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_name" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
/home/m/miniconda3/envs/1/lib/python3.11/site-packages/pydantic/_internal/_fields.py:132: UserWarning: Field "model_kwargs" in HuggingFaceLLM has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(
[06/29/25 22:35:37] INFO     [config.py:54] >> PyTorch version 2.7.1 available.                                                                  config.py:54

  You can now view your Streamlit app in your browser.

  Local URL: http://localhost:8501
  Network URL: http://172.21.151.42:8501



IndexError: list index out of range

If you allow the Yamel file for Olam and hugginngfacee without errors to run locally, and if possible, a collab page for Olama and hugginngfacee