์ธํ๋ฐ ์ปค๋ฎค๋ํฐ ์ง๋ฌธ&๋ต๋ณ
๐จ python3.14 ๋ฅผ ์ฐ๊ณ ๊ณ์๋ฉด chroma ์์ ConfigError ๊ฐ ๋ฐ์ํฉ๋๋ค.
์์ฑ
ยท
38
1
---------------------------------------------------------------------------
ConfigError Traceback (most recent call last)
Cell In[13], line 1
----> 1 from langchain_chroma import Chroma
3 database = Chroma.from_documents(documents=document_list, embedding=embedding)
File ~/workspace/ai/rag-practice/lib/python3.14/site-packages/langchain_chroma/__init__.py:3
1 """LangChain integration for Chroma vector database."""
----> 3 from langchain_chroma.vectorstores import Chroma
5 __all__ = [
6 "Chroma",
7 ]
File ~/workspace/ai/rag-practice/lib/python3.14/site-packages/langchain_chroma/vectorstores.py:18
12 from pathlib import Path
13 from typing import (
14 TYPE_CHECKING,
15 Any,
16 )
---> 18 import chromadb
19 import chromadb.config
20 import numpy as np
File ~/workspace/ai/rag-practice/lib/python3.14/site-packages/chromadb/__init__.py:3
1 from typing import Dict, Optional, Union
2 import logging
----> 3 from chromadb.api.client import Client as ClientCreator
4 from chromadb.api.client import (
5 AdminClient as AdminClientCreator,
6 )
7 from chromadb.api.async_client import AsyncClient as AsyncClientCreator
File ~/workspace/ai/rag-practice/lib/python3.14/site-packages/chromadb/api/__init__.py:51
46 from overrides import override
47 from chromadb.api.collection_configuration import (
48 CreateCollectionConfiguration,
49 UpdateCollectionConfiguration,
50 )
---> 51 from chromadb.config import DEFAULT_DATABASE, DEFAULT_TENANT
52 from chromadb.api.types import (
53 CollectionMetadata,
54 Documents,
(...) 73 DefaultEmbeddingFunction,
74 )
76 from chromadb.auth import UserIdentity
File ~/workspace/ai/rag-practice/lib/python3.14/site-packages/chromadb/config.py:120
116 NODE = "node"
117 ID = "id"
--> 120 class Settings(BaseSettings): # type: ignore
121 # ==============
122 # Generic config
123 # ==============
125 environment: str = ""
127 # Can be "chromadb.api.segment.SegmentAPI" or "chromadb.api.fastapi.FastAPI" or "chromadb.api.rust.RustBindingsAPI"
File ~/workspace/ai/rag-practice/lib/python3.14/site-packages/pydantic/v1/main.py:221, in ModelMetaclass.__new__(mcs, name, bases, namespace, **kwargs)
219 elif is_valid_field(var_name) and var_name not in annotations and can_be_changed:
220 validate_field_name(bases, var_name)
--> 221 inferred = ModelField.infer(
222 name=var_name,
223 value=value,
224 annotation=annotations.get(var_name, Undefined),
225 class_validators=vg.get_validators(var_name),
226 config=config,
227 )
228 if var_name in fields:
229 if lenient_issubclass(inferred.type_, fields[var_name].type_):
File ~/workspace/ai/rag-practice/lib/python3.14/site-packages/pydantic/v1/fields.py:504, in ModelField.infer(cls, name, value, annotation, class_validators, config)
501 required = False
502 annotation = get_annotation_from_field_info(annotation, field_info, name, config.validate_assignment)
--> 504 return cls(
505 name=name,
506 type_=annotation,
507 alias=field_info.alias,
508 class_validators=class_validators,
509 default=value,
510 default_factory=field_info.default_factory,
511 required=required,
512 model_config=config,
513 field_info=field_info,
514 )
File ~/workspace/ai/rag-practice/lib/python3.14/site-packages/pydantic/v1/fields.py:434, in ModelField.__init__(self, name, type_, class_validators, model_config, default, default_factory, required, final, alias, field_info)
432 self.shape: int = SHAPE_SINGLETON
433 self.model_config.prepare_field(self)
--> 434 self.prepare()
File ~/workspace/ai/rag-practice/lib/python3.14/site-packages/pydantic/v1/fields.py:544, in ModelField.prepare(self)
537 def prepare(self) -> None:
538 """
539 Prepare the field but inspecting self.default, self.type_ etc.
540
541 Note: this method is **not** idempotent (because _type_analysis is not idempotent),
542 e.g. calling it it multiple times may modify the field and configure it incorrectly.
543 """
--> 544 self._set_default_and_type()
545 if self.type_.__class__ is ForwardRef or self.type_.__class__ is DeferredType:
546 # self.type_ is currently a ForwardRef and there's nothing we can do now,
547 # user will need to call model.update_forward_refs()
548 return
File ~/workspace/ai/rag-practice/lib/python3.14/site-packages/pydantic/v1/fields.py:576, in ModelField._set_default_and_type(self)
573 self.annotation = self.type_
575 if self.type_ is Undefined:
--> 576 raise errors_.ConfigError(f'unable to infer type for attribute "{self.name}"')
578 if self.required is False and default_value is None:
579 self.allow_none = True
ConfigError: unable to infer type for attribute "chroma_server_nofile"์ ๋ Python 3.14 ๋ฒ์ ์ผ๋ก venv ๋ฅผ ์ฌ์ฉ์ค์ด์๋๋ฐ์.
์์ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ์์ต๋๋ค.
๊ตฌ๊ธ์ ConfigError ๋ฌธ๊ตฌ๋ฅผ ๊ฒ์ํด๋ ์ ๋์ค์ง ์์์ ChatGPT์ ๋์์ ์ข ๋ฐ์๋๋ฐ ์ด๋ ๊ฒ ๋ตํ๋๋ผ๊ตฌ์.
- Python 3.14 ํ๊ฒฝ์์
chromadb๊ฐ (pydantic v2์์ BaseSettings๊ฐ ๋น ์ง ๊ฑธ ์ฒ๋ฆฌํ๋ ค๋ค)pydantic.v1ํธํ ๋ ์ด์ด๋ก ๋จ์ด์ง๊ณ- ๊ทธ๋ฐ๋ฐ Pydantic v1 ์ฝ์ด๋ Python 3.14+์์ ์ ๋๋ก ๋์ํ์ง ์์์,
Settings๋ชจ๋ธ ํ๋(chroma_server_nofile) ํ์ ์ถ๋ก ์ด ๊นจ์ง๋ฉด์ConfigError๊ฐ ๋ฉ๋๋ค.
ํ์ด์ฌ ๋ฒ์ ์ 3.12๋ก ๋ฎ์ถ์ด์ venv ๋ฅผ ๋ค์ ์ค์ ํ๋๋ ๊ฐ์ ์ฝ๋์์๋ ์ ์์ ์ผ๋ก ์คํ๋์์ต๋๋ค.
ํน์๋ ์ ์ ๊ฐ์ ์ด์๋ฅผ ๊ฒช์ผ์ ๋ถ๋ค์ python ๋ฒ์ ์ ๋ฎ์ถ์ด๋ณด์๊ธธ ๋ฐ๋ผ์.
๋ต๋ณ 1
0
์ข์ ๋ด์ฉ ๊ณต์ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ์์ฃผ ๋ฌป๋ ์ง๋ฌธ์ ๋ฑ๋กํด๋์์ต๋๋ค





