This commit implements a clean architecture where environment variables
are only read, never set, ensuring compatibility with other ComfyUI
packages.
The changes: - Remove all code that sets global environment variables -
Clean up config.yaml to remove API key placeholders - Add documentation
for safe environment handling - Add comprehensive tests to verify
non-polluting behavior - Ensure backward compatibility for other
packages
The commit includes detailed docs explaining the clean architecture and
safety guarantees for package compatibility.
- Add detailed docstrings to AgentNode, BasicRecursionFilterNode, and
DocumentChunkRecursionFilterNode for clarity and documentation. -
Improve input validation and error handling in agent nodes. - Update
.gitignore to cover more environment, config, and IDE files. - Refactor
LiteLLMCustomEndpointProvider for custom API endpoints. - Add
conditional imports and dummy functions for LightRAG when unavailable. -
Update config.yaml to use environment variables for API keys and clarify
usage. - Refine requirements.txt to avoid heavy LightRAG dependencies. -
Add tests/__init__.py with test suite metadata; remove redundant test
files. - Fix CustomDict import and model config handling in
litellmnodes.py. - Improve chunk processing and recursion filter logic
in agent nodes. - Update utils/__init__.py to include env_config.
- Add new Agent system with base node infrastructure and recursion filtering
- Implement LightRAG integration with document processing and query capabilities
- Add memory management system with Linux memory directory support
- Update node mappings to include new Agent and LightRAG components
- Fix model response format handling in LiteLLM nodes
- Add new dependencies for embedding and vector storage support
- Remove author attribution from init file
- Add new classes for advanced LLM interactions (HTMLRenderer, AddDataModelToLLLm, ModifyModelKwargs, LitellmCompletionV2)
- Implement PDF processing with PDFToImageNode for image extraction
- Enhance error handling and caching in LiteLLMCompletion for improved performance
- Update model options and add support for custom data models and kwargs modifications
- Refactor initialization process and simplify JavaScript components
- Improve multi-modal processing with better image handling in LLM completions
- Update project metadata to reflect evolving focus and capabilities
This commit significantly expands the system's ability to handle complex AI tasks,
including HTML rendering, PDF processing, and more flexible LLM interactions.
It represents a major step towards a more comprehensive, multi-modal AI toolkit
- Added safe_print and safe_error functions for improved error handling in install.py and litellmnodes.py.
- Introduced new model support in litellmnodes.py including Claude 3.5 Sonnet.
- Refactored LiteLLMCompletion node to improve readability and maintainability.
- Enhanced README.md with updated features, supported models, and usage instructions.
- Included new nodes in README.md for better user guidance.
- Introduced a unique Unicode delimiter (Fullwidth Colon, U+FF1A) in the `handler` method of the `ExtractMessages` class to prevent conflicts with regular colons.
- Added validation to ensure that message content does not contain the unique delimiter.
- Refactored `handler` method in `ExtractMessages` to use regex for parsing and validating messages using the new delimiter.
- Improved error handling to raise detailed exceptions for invalid or empty content.
- Introduced the `MessagesToText` class which converts `LLLM_MESSAGES` to a single string.
- Added the `TextToMessages` class to convert a string to a list of messages.
- Both classes come with input types and handlers to facilitate the conversion process.
- Included validation to ensure correct message format and non-empty content.
feat: add index tracking to LLM prompt processing
- Introduce `wrapped_llm_call` method to encapsulate LLM call and return index with results.
- Modify `async_process_prompt` to utilize `wrapped_llm_call` and return index with completion.
- Ensure order of completions is maintained using index in `process_prompts`.
```