diff --git a/.changeset/hip-foxes-invite.md b/.changeset/hip-foxes-invite.md new file mode 100644 index 0000000000000000000000000000000000000000..ed2ca0a598eeafa5fe65c61cb04acb472eb4777d --- /dev/null +++ b/.changeset/hip-foxes-invite.md @@ -0,0 +1,5 @@ +--- +"create-llama": patch +--- + +Add OLLAMA_REQUEST_TIMEOUT variable to config Ollama timeout (Python) diff --git a/.changeset/wild-wasps-join.md b/.changeset/wild-wasps-join.md new file mode 100644 index 0000000000000000000000000000000000000000..c5895143b68169ed1fee37b917d598c9e02ebbf5 --- /dev/null +++ b/.changeset/wild-wasps-join.md @@ -0,0 +1,5 @@ +--- +"create-llama": patch +--- + +Apply nest_asyncio for llama parse diff --git a/templates/components/loaders/python/file.py b/templates/components/loaders/python/file.py index 95b5fd2f64b1bfd3d0ec4e769a02839ea7719f4e..3baf70012efa6fd5e87d4559563836661a95e52c 100644 --- a/templates/components/loaders/python/file.py +++ b/templates/components/loaders/python/file.py @@ -23,7 +23,12 @@ def llama_parse_parser(): "LLAMA_CLOUD_API_KEY environment variable is not set. " "Please set it in .env file or in your shell environment then run again!" ) - parser = LlamaParse(result_type="markdown", verbose=True, language="en") + parser = LlamaParse( + result_type="markdown", + verbose=True, + language="en", + ignore_errors=False, + ) return parser @@ -32,15 +37,19 @@ def get_file_documents(config: FileLoaderConfig): try: reader = SimpleDirectoryReader( - config.data_dir, - recursive=True, - filename_as_id=True, + config.data_dir, recursive=True, filename_as_id=True, raise_on_error=True ) if config.use_llama_parse: + # LlamaParse is async first, + # so we need to use nest_asyncio to run it in sync mode + import nest_asyncio + + nest_asyncio.apply() + parser = llama_parse_parser() reader.file_extractor = {".pdf": parser} return reader.load_data() - except ValueError as e: + except Exception as e: import sys, traceback # Catch the error if the data dir is empty diff --git a/templates/types/streaming/fastapi/app/settings.py b/templates/types/streaming/fastapi/app/settings.py index 0b45f4dfa036eb3228e041f552bb59488d3f7775..3f138b10085ea2471874574f626f2566232661e8 100644 --- a/templates/types/streaming/fastapi/app/settings.py +++ b/templates/types/streaming/fastapi/app/settings.py @@ -23,15 +23,20 @@ def init_settings(): def init_ollama(): - from llama_index.llms.ollama import Ollama + from llama_index.llms.ollama.base import Ollama, DEFAULT_REQUEST_TIMEOUT from llama_index.embeddings.ollama import OllamaEmbedding base_url = os.getenv("OLLAMA_BASE_URL") or "http://127.0.0.1:11434" + request_timeout = float( + os.getenv("OLLAMA_REQUEST_TIMEOUT", DEFAULT_REQUEST_TIMEOUT) + ) Settings.embed_model = OllamaEmbedding( base_url=base_url, model_name=os.getenv("EMBEDDING_MODEL"), ) - Settings.llm = Ollama(base_url=base_url, model=os.getenv("MODEL")) + Settings.llm = Ollama( + base_url=base_url, model=os.getenv("MODEL"), request_timeout=request_timeout + ) def init_openai():