lumis-ai 0.1.0a1__tar.gz → 0.1.1a1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/PKG-INFO +20 -9
  2. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/README.md +10 -1
  3. lumis_ai-0.1.1a1/lumis/core/django/__init__.py +8 -0
  4. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/nlp/information_extraction/FactExtractor.py +14 -7
  5. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/nlp/ner/ner.py +12 -2
  6. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/pyproject.toml +14 -8
  7. lumis_ai-0.1.0a1/lumis/core/django/__init__.py +0 -5
  8. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/.github/workflows/publish.yml +0 -0
  9. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/.gitignore +0 -0
  10. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/.python-version +0 -0
  11. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/.vscode/settings.json +0 -0
  12. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/LICENSE +0 -0
  13. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/cookbook/__init__.py +0 -0
  14. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/cookbook/information_extraction.ipynb +0 -0
  15. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/cookbook/nlp.ipynb +0 -0
  16. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/cookbook/utils/config.py +0 -0
  17. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/cookbook/utils/helper.py +0 -0
  18. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/__init__.py +0 -0
  19. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/agents/__init__.py +0 -0
  20. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/agents/base/__init__.py +0 -0
  21. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/agents/base/base_agent.py +0 -0
  22. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/agents/base/core_agent.py +0 -0
  23. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/agents/base/graph_based_agent.py +0 -0
  24. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/agents/prompt_refinement_pipeline.py +0 -0
  25. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/agents/qa_research_agent.py +0 -0
  26. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/agents/react_agent.py +0 -0
  27. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/agents/research_agent/__init__.py +0 -0
  28. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/agents/research_agent/agent.py +0 -0
  29. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/agents/research_agent/source_models.py +0 -0
  30. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/agents/research_agent/source_tracker.py +0 -0
  31. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/agents/research_agent/tools/__init__.py +0 -0
  32. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/agents/research_agent/tools/search.py +0 -0
  33. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/agents/research_agent/types.py +0 -0
  34. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/agents/storm/agent.py +0 -0
  35. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/agents/storm/interview_graph.py +0 -0
  36. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/agents/storm/models/outline.py +0 -0
  37. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/agents/storm/models/survey_subjects.py +0 -0
  38. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/common/__init__.py +0 -0
  39. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/core/__init__.py +0 -0
  40. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/core/common/coloured_logger.py +0 -0
  41. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/core/common/logger_mixin.py +0 -0
  42. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/core/django/models/chat_memory.py +0 -0
  43. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/core/document.py +0 -0
  44. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/core/event_emitter.py +0 -0
  45. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/core/utils/__init__.py +0 -0
  46. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/core/utils/coroutine.py +0 -0
  47. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/core/utils/helpers.py +0 -0
  48. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/core/utils/inference.py +0 -0
  49. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/core/utils/number.py +0 -0
  50. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/core/utils/status_manager.py +0 -0
  51. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/core/utils/string.py +0 -0
  52. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/core/utils/thread_runner.py +0 -0
  53. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/core/utils/thread_safe_cache.py +0 -0
  54. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/core/utils/time.py +0 -0
  55. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/core/utils/types.py +0 -0
  56. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/embedding/__init__.py +0 -0
  57. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/embedding/base_embedding.py +0 -0
  58. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/embedding/huggingface_embedding.py +0 -0
  59. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/embedding/openai_embedding.py +0 -0
  60. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/evaluators/__init__.py +0 -0
  61. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/evaluators/conciseness_and_clarity_analyzer.py +0 -0
  62. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/evaluators/relevancy.py +0 -0
  63. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/kit/__init__.py +0 -0
  64. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/kit/graph.py +0 -0
  65. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/kit/nodes/__init__.py +0 -0
  66. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/kit/nodes/llm_chat_node.py +0 -0
  67. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/kit/nodes/llm_node.py +0 -0
  68. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/kit/nodes/llm_structured_node.py +0 -0
  69. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/kit/utils.py +0 -0
  70. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/llm/__init__.py +0 -0
  71. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/llm/base_llm.py +0 -0
  72. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/llm/gemini_llm.py +0 -0
  73. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/llm/ollama_llm.py +0 -0
  74. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/llm/openai_llm.py +0 -0
  75. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/llm/perplexity_llm.py +0 -0
  76. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/memory/__init__.py +0 -0
  77. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/memory/base_memory.py +0 -0
  78. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/memory/simple_memory.py +0 -0
  79. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/nlp/__init__.py +0 -0
  80. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/nlp/ner/config/entity_rel_extraction.cfg +0 -0
  81. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/nlp/ner/config/fill-config.cfg +0 -0
  82. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/nlp/semantic_parser.py +0 -0
  83. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/nlp/spacy_summarizer.py +0 -0
  84. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/nlp/summarizer.py +0 -0
  85. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/nlp/vector_similarity_retriever.py +0 -0
  86. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/reader/__init__.py +0 -0
  87. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/reader/pdf.py +0 -0
  88. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/storage/__init__.py +0 -0
  89. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/storage/base_vector_db.py +0 -0
  90. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/storage/chroma_vector_db.py +0 -0
  91. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/storage/faiss_vector_db.py +0 -0
  92. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/tools/__init__.py +0 -0
  93. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/tools/scraper.py +0 -0
  94. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/tools/search/__init__.py +0 -0
  95. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/tools/search/arxiv.py +0 -0
  96. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/tools/search/pytrends.py +0 -0
  97. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/tools/search/search_engine_client.py +0 -0
  98. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/tools/search/vector_search_retrieval_engine.py +0 -0
  99. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/tools/search/wiki.py +0 -0
  100. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis/tools/search/yahoofinance.py +0 -0
  101. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/lumis.code-workspace +0 -0
  102. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/poetry.lock +0 -0
  103. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/poetry.toml +0 -0
  104. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/ruff.toml +0 -0
  105. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/tests/__init__.py +0 -0
  106. {lumis_ai-0.1.0a1 → lumis_ai-0.1.1a1}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lumis-ai
3
- Version: 0.1.0a1
3
+ Version: 0.1.1a1
4
4
  Summary: An AI agent framework for building LLM-powered applications
5
5
  Project-URL: Homepage, https://github.com/tareksanger/lumis
6
6
  Project-URL: Repository, https://github.com/tareksanger/lumis
@@ -23,12 +23,7 @@ Requires-Python: >=3.11
23
23
  Requires-Dist: arxiv>=0.5.0
24
24
  Requires-Dist: asgiref>=3.8.1
25
25
  Requires-Dist: beautifulsoup4>=4.12.0
26
- Requires-Dist: coreferee-model-en>=1.0.0
27
- Requires-Dist: coreferee>=1.3.0
28
26
  Requires-Dist: deepmerge>=2.0.0
29
- Requires-Dist: django>=4.2
30
- Requires-Dist: en-core-web-lg<3.8.0,>=3.7.0
31
- Requires-Dist: en-core-web-trf<3.8.0,>=3.7.0
32
27
  Requires-Dist: faiss-cpu>=1.7.0
33
28
  Requires-Dist: googlesearch-python>=1.2.0
34
29
  Requires-Dist: httpx>=0.27.0
@@ -54,8 +49,6 @@ Requires-Dist: redis>=5.0.0
54
49
  Requires-Dist: requests>=2.28.0
55
50
  Requires-Dist: scikit-learn>=1.0.0
56
51
  Requires-Dist: sentence-transformers>=2.2.2
57
- Requires-Dist: spacy-llm>=0.7.2
58
- Requires-Dist: spacy<3.8.0,>=3.7.0
59
52
  Requires-Dist: tavily-python>=0.3.0
60
53
  Requires-Dist: tenacity>=9.0.0
61
54
  Requires-Dist: textstat>=0.7.0
@@ -65,6 +58,15 @@ Requires-Dist: transformers>=4.0.0
65
58
  Requires-Dist: typing-extensions>=4.0.0
66
59
  Requires-Dist: wikipedia>=1.4.0
67
60
  Requires-Dist: yfinance>=0.2.0
61
+ Provides-Extra: django
62
+ Requires-Dist: django>=4.2; extra == 'django'
63
+ Provides-Extra: spacy
64
+ Requires-Dist: coreferee-model-en>=1.0.0; extra == 'spacy'
65
+ Requires-Dist: coreferee>=1.3.0; extra == 'spacy'
66
+ Requires-Dist: en-core-web-lg<3.8.0,>=3.7.0; extra == 'spacy'
67
+ Requires-Dist: en-core-web-trf<3.8.0,>=3.7.0; extra == 'spacy'
68
+ Requires-Dist: spacy-llm>=0.7.2; extra == 'spacy'
69
+ Requires-Dist: spacy<3.8.0,>=3.7.0; extra == 'spacy'
68
70
  Description-Content-Type: text/markdown
69
71
 
70
72
  # lumis
@@ -88,7 +90,16 @@ An AI agent framework for building LLM-powered applications with multi-provider
88
90
  pip install lumis-ai
89
91
  ```
90
92
 
91
- After installing, download the required spaCy language models:
93
+ ### Optional extras
94
+
95
+ Some integrations are opt-in to keep the base install lighter:
96
+
97
+ | Extra | What it adds | Install |
98
+ |------------|-----------------------------------------------|-----------------------------------|
99
+ | `spacy` | NER, fact extraction, coreference resolution | `pip install lumis-ai[spacy]` |
100
+ | `django` | Django ORM memory backend | `pip install lumis-ai[django]` |
101
+
102
+ The `spacy` extra requires language models. After installing, download them:
92
103
 
93
104
  ```bash
94
105
  python -m spacy download en_core_web_lg
@@ -19,7 +19,16 @@ An AI agent framework for building LLM-powered applications with multi-provider
19
19
  pip install lumis-ai
20
20
  ```
21
21
 
22
- After installing, download the required spaCy language models:
22
+ ### Optional extras
23
+
24
+ Some integrations are opt-in to keep the base install lighter:
25
+
26
+ | Extra | What it adds | Install |
27
+ |------------|-----------------------------------------------|-----------------------------------|
28
+ | `spacy` | NER, fact extraction, coreference resolution | `pip install lumis-ai[spacy]` |
29
+ | `django` | Django ORM memory backend | `pip install lumis-ai[django]` |
30
+
31
+ The `spacy` extra requires language models. After installing, download them:
23
32
 
24
33
  ```bash
25
34
  python -m spacy download en_core_web_lg
@@ -0,0 +1,8 @@
1
+ from __future__ import annotations
2
+
3
+ try:
4
+ from .models.chat_memory import ChatMemory
5
+
6
+ __all__ = ["ChatMemory"]
7
+ except ImportError:
8
+ __all__ = []
@@ -1,9 +1,6 @@
1
- from typing import Optional, Set, Tuple
1
+ from __future__ import annotations
2
2
 
3
- import spacy
4
- from spacy.language import Language
5
- from spacy.matcher import Matcher
6
- from spacy.tokens import Doc, Span, Token
3
+ from typing import Optional, Set, Tuple
7
4
 
8
5
 
9
6
  # TODO: Convert this to a spacy factory
@@ -13,9 +10,19 @@ class FactExtractor:
13
10
  Initialize the FactExtractor with a spaCy NLP pipeline.
14
11
  :param model: The name of the spaCy model to load.
15
12
  """
13
+ try:
14
+ import spacy
15
+ from spacy.matcher import Matcher
16
+ from spacy.tokens import Doc
17
+ except ImportError:
18
+ raise ImportError(
19
+ "spacy is required for FactExtractor. "
20
+ "Install it with: pip install lumis-ai[spacy]"
21
+ )
22
+
16
23
  # spaCy handles caching and singleton behavior automatically
17
- self.nlp: Language = spacy.load(model)
18
- self.matcher: Matcher = Matcher(self.nlp.vocab)
24
+ self.nlp = spacy.load(model)
25
+ self.matcher = Matcher(self.nlp.vocab)
19
26
  self._init_patterns()
20
27
 
21
28
  # Register custom extension if not already registered
@@ -1,13 +1,23 @@
1
+ from __future__ import annotations
2
+
1
3
  from pathlib import Path
4
+ from typing import TYPE_CHECKING
2
5
 
3
- from spacy.tokens import Doc
4
- from spacy_llm.util import assemble
6
+ if TYPE_CHECKING:
7
+ from spacy.tokens import Doc
5
8
 
6
9
  relative_path = Path(__file__).parent / "config" / "entity_rel_extraction.cfg"
7
10
 
8
11
 
9
12
  class Ner:
10
13
  def __init__(self, config: str = str(relative_path)):
14
+ try:
15
+ from spacy_llm.util import assemble
16
+ except ImportError:
17
+ raise ImportError(
18
+ "spacy and spacy-llm are required for Ner. "
19
+ "Install them with: pip install lumis-ai[spacy]"
20
+ )
11
21
  self.nlp = assemble(config)
12
22
 
13
23
  def get_entities(self, text: str) -> list[tuple[str, str]]:
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "lumis-ai"
3
- version = "0.1.0a1"
3
+ version = "0.1.1a1"
4
4
  description = "An AI agent framework for building LLM-powered applications"
5
5
  readme = "README.md"
6
6
  license = "MIT"
@@ -25,12 +25,7 @@ dependencies = [
25
25
  "arxiv>=0.5.0",
26
26
  "asgiref>=3.8.1",
27
27
  "beautifulsoup4>=4.12.0",
28
- "coreferee>=1.3.0",
29
- "coreferee-model-en>=1.0.0",
30
28
  "deepmerge>=2.0.0",
31
- "django>=4.2",
32
- "en-core-web-lg>=3.7.0,<3.8.0",
33
- "en-core-web-trf>=3.7.0,<3.8.0",
34
29
  "faiss-cpu>=1.7.0",
35
30
  "googlesearch-python>=1.2.0",
36
31
  "httpx>=0.27.0",
@@ -56,8 +51,6 @@ dependencies = [
56
51
  "requests>=2.28.0",
57
52
  "scikit-learn>=1.0.0",
58
53
  "sentence-transformers>=2.2.2",
59
- "spacy>=3.7.0,<3.8.0",
60
- "spacy-llm>=0.7.2",
61
54
  "tavily-python>=0.3.0",
62
55
  "tenacity>=9.0.0",
63
56
  "textstat>=0.7.0",
@@ -69,6 +62,19 @@ dependencies = [
69
62
  "yfinance>=0.2.0",
70
63
  ]
71
64
 
65
+ [project.optional-dependencies]
66
+ django = [
67
+ "django>=4.2",
68
+ ]
69
+ spacy = [
70
+ "coreferee>=1.3.0",
71
+ "coreferee-model-en>=1.0.0",
72
+ "en-core-web-lg>=3.7.0,<3.8.0",
73
+ "en-core-web-trf>=3.7.0,<3.8.0",
74
+ "spacy>=3.7.0,<3.8.0",
75
+ "spacy-llm>=0.7.2",
76
+ ]
77
+
72
78
  [project.urls]
73
79
  Homepage = "https://github.com/tareksanger/lumis"
74
80
  Repository = "https://github.com/tareksanger/lumis"
@@ -1,5 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from .models.chat_memory import ChatMemory
4
-
5
- __all__ = ["ChatMemory"]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes