Open bprager opened 1 month ago
@bprager Try this base_url
:
pdf_tool = PDFSearchTool(
config=dict(
llm=dict(
provider="azure_openai",
config=dict(
model=os.getenv("AZURE_OPENAI_DEPLOYMENT_NAME"),
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
base_url=os.getenv("AZURE_OPENAI_ENDPOINT"),
temperature=0.0,
),
),
),
pdf=document,
)
You have some information here:
That worked @JimFran , thank you. Do you know by any chance how the "embedder" keyword syntax would look like?
I tried with the same but got this error about KeyError: 'OPENAI_API_KEY' (Even though I am using AzureOpenAI key)
pdf_tool = PDFSearchTool(
config=dict(
llm=dict(
provider="azure_openai",
config=dict(
model=os.getenv("AZURE_OPENAI_DEPLOYMENT_NAME"),
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
base_url=os.getenv("AZURE_OPENAI_ENDPOINT"),
temperature=0.0,
),
),
),
pdf=pdf_path,
)
But got this error:
----> 7 pdf_tool = PDFSearchTool(
8 config=dict(
9 llm=dict(
10 provider="azure_openai",
11 config=dict(
12 model=os.getenv("AZURE_OPENAI_DEPLOYMENT_NAME"),
13 api_key=os.getenv("AZURE_OPENAI_API_KEY"),
14 base_url=os.getenv("AZURE_OPENAI_ENDPOINT"),
15 temperature=0.0,
16 ),
17 ),
18 ),
19 pdf=pdf_path,
20 )
File ~/demo/venv_crewai/lib/python3.11/site-packages/crewai_tools/tools/pdf_search_tool/pdf_search_tool.py:32, in PDFSearchTool.__init__(self, pdf, **kwargs)
31 def __init__(self, pdf: Optional[str] = None, **kwargs):
---> 32 super().__init__(**kwargs)
33 if pdf is not None:
34 self.add(pdf)
[... skipping hidden 1 frame]
File ~/demo/venv_crewai/lib/python3.11/site-packages/crewai_tools/tools/pdf_search_tool/pdf_search_tool.py:48, in PDFSearchTool._set_default_adapter(self)
42 from embedchain import App
44 from crewai_tools.adapters.pdf_embedchain_adapter import (
45 PDFEmbedchainAdapter,
46 )
---> 48 app = App.from_config(config=self.config) if self.config else App()
49 self.adapter = PDFEmbedchainAdapter(
50 embedchain_app=app, summarize=self.summarize
51 )
53 return self
File ~/demo/venv_crewai/lib/python3.11/site-packages/embedchain/app.py:402, in App.from_config(cls, config_path, config, auto_deploy, yaml_path)
399 llm = None
401 embedding_model_provider = embedding_model_config_data.get("provider", "openai")
--> 402 embedding_model = EmbedderFactory.create(
403 embedding_model_provider, embedding_model_config_data.get("config", {})
404 )
406 if cache_config_data is not None:
407 cache_config = CacheConfig.from_config(cache_config_data)
File ~/demo/venv_crewai/lib/python3.11/site-packages/embedchain/factory.py:84, in EmbedderFactory.create(cls, provider_name, config_data)
82 embedder_class = load_class(class_type)
83 embedder_config_class = load_class(config_class_type)
---> 84 return embedder_class(config=embedder_config_class(**config_data))
85 else:
86 raise ValueError(f"Unsupported Embedder provider: {provider_name}")
File ~/demo/venv_crewai/lib/python3.11/site-packages/embedchain/embedder/openai.py:19, in OpenAIEmbedder.__init__(self, config)
16 if self.config.model is None:
17 self.config.model = "text-embedding-ada-002"
---> 19 api_key = self.config.api_key or os.environ["OPENAI_API_KEY"]
20 api_base = self.config.api_base or os.environ.get("OPENAI_API_BASE")
22 if api_key is None and os.getenv("OPENAI_ORGANIZATION") is None:
File <frozen os>:679, in __getitem__(self, key)
KeyError: 'OPENAI_API_KEY'
That worked @JimFran , thank you. Do you know by any chance how the "embedder" keyword syntax would look like?
I have to partially correct myself. While the schema.SchemaError
is gone, the tools still tries to connect to OpenAI instead of the base_url
address.
I can't find a way to set a custom endpoint for PDFSearchTool. I tried various key names in 'config' without success:
The example above gives me the error:
schema.SchemaError: Key 'llm' error: Key 'config' error: Wrong key 'azure_endpoint'
What key name do I have to use or is this feature missing?