lollms-client 1.3.7__tar.gz → 1.3.8__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.

Potentially problematic release.


This version of lollms-client might be problematic. Click here for more details.

Files changed (84) hide show
  1. {lollms_client-1.3.7/src/lollms_client.egg-info → lollms_client-1.3.8}/PKG-INFO +1 -1
  2. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/__init__.py +1 -1
  3. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/assets/models_ctx_sizes.json +40 -42
  4. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/lollms_discussion.py +106 -0
  5. {lollms_client-1.3.7 → lollms_client-1.3.8/src/lollms_client.egg-info}/PKG-INFO +1 -1
  6. {lollms_client-1.3.7 → lollms_client-1.3.8}/LICENSE +0 -0
  7. {lollms_client-1.3.7 → lollms_client-1.3.8}/README.md +0 -0
  8. {lollms_client-1.3.7 → lollms_client-1.3.8}/pyproject.toml +0 -0
  9. {lollms_client-1.3.7 → lollms_client-1.3.8}/setup.cfg +0 -0
  10. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/llm_bindings/__init__.py +0 -0
  11. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/llm_bindings/azure_openai/__init__.py +0 -0
  12. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/llm_bindings/claude/__init__.py +0 -0
  13. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/llm_bindings/gemini/__init__.py +0 -0
  14. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/llm_bindings/grok/__init__.py +0 -0
  15. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/llm_bindings/groq/__init__.py +0 -0
  16. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/llm_bindings/hugging_face_inference_api/__init__.py +0 -0
  17. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/llm_bindings/litellm/__init__.py +0 -0
  18. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/llm_bindings/llamacpp/__init__.py +0 -0
  19. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/llm_bindings/lollms/__init__.py +0 -0
  20. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/llm_bindings/lollms_webui/__init__.py +0 -0
  21. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/llm_bindings/mistral/__init__.py +0 -0
  22. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/llm_bindings/ollama/__init__.py +0 -0
  23. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/llm_bindings/open_router/__init__.py +0 -0
  24. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/llm_bindings/openai/__init__.py +0 -0
  25. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/llm_bindings/openllm/__init__.py +0 -0
  26. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/llm_bindings/pythonllamacpp/__init__.py +0 -0
  27. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/llm_bindings/tensor_rt/__init__.py +0 -0
  28. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/llm_bindings/transformers/__init__.py +0 -0
  29. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/llm_bindings/vllm/__init__.py +0 -0
  30. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/lollms_agentic.py +0 -0
  31. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/lollms_config.py +0 -0
  32. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/lollms_core.py +0 -0
  33. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/lollms_js_analyzer.py +0 -0
  34. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/lollms_llm_binding.py +0 -0
  35. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/lollms_mcp_binding.py +0 -0
  36. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/lollms_mcp_security.py +0 -0
  37. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/lollms_personality.py +0 -0
  38. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/lollms_python_analyzer.py +0 -0
  39. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/lollms_stt_binding.py +0 -0
  40. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/lollms_tti_binding.py +0 -0
  41. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/lollms_ttm_binding.py +0 -0
  42. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/lollms_tts_binding.py +0 -0
  43. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/lollms_ttv_binding.py +0 -0
  44. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/lollms_types.py +0 -0
  45. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/lollms_utilities.py +0 -0
  46. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/mcp_bindings/local_mcp/__init__.py +0 -0
  47. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/mcp_bindings/local_mcp/default_tools/file_writer/file_writer.py +0 -0
  48. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/mcp_bindings/local_mcp/default_tools/generate_image_from_prompt/generate_image_from_prompt.py +0 -0
  49. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/mcp_bindings/local_mcp/default_tools/internet_search/internet_search.py +0 -0
  50. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/mcp_bindings/local_mcp/default_tools/python_interpreter/python_interpreter.py +0 -0
  51. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/mcp_bindings/remote_mcp/__init__.py +0 -0
  52. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/mcp_bindings/standard_mcp/__init__.py +0 -0
  53. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/stt_bindings/__init__.py +0 -0
  54. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/stt_bindings/lollms/__init__.py +0 -0
  55. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/stt_bindings/whisper/__init__.py +0 -0
  56. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/stt_bindings/whispercpp/__init__.py +0 -0
  57. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/tti_bindings/__init__.py +0 -0
  58. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/tti_bindings/diffusers/__init__.py +0 -0
  59. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/tti_bindings/gemini/__init__.py +0 -0
  60. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/tti_bindings/lollms/__init__.py +0 -0
  61. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/tti_bindings/openai/__init__.py +0 -0
  62. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/ttm_bindings/__init__.py +0 -0
  63. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/ttm_bindings/audiocraft/__init__.py +0 -0
  64. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/ttm_bindings/bark/__init__.py +0 -0
  65. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/ttm_bindings/lollms/__init__.py +0 -0
  66. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/tts_bindings/__init__.py +0 -0
  67. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/tts_bindings/bark/__init__.py +0 -0
  68. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/tts_bindings/bark/server/install_bark.py +0 -0
  69. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/tts_bindings/bark/server/main.py +0 -0
  70. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/tts_bindings/lollms/__init__.py +0 -0
  71. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/tts_bindings/piper_tts/__init__.py +0 -0
  72. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/tts_bindings/piper_tts/server/install_piper.py +0 -0
  73. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/tts_bindings/piper_tts/server/main.py +0 -0
  74. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/tts_bindings/piper_tts/server/setup_voices.py +0 -0
  75. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/tts_bindings/xtts/__init__.py +0 -0
  76. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/tts_bindings/xtts/server/main.py +0 -0
  77. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/tts_bindings/xtts/server/setup_voices.py +0 -0
  78. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/ttv_bindings/__init__.py +0 -0
  79. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client/ttv_bindings/lollms/__init__.py +0 -0
  80. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client.egg-info/SOURCES.txt +0 -0
  81. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client.egg-info/dependency_links.txt +0 -0
  82. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client.egg-info/requires.txt +0 -0
  83. {lollms_client-1.3.7 → lollms_client-1.3.8}/src/lollms_client.egg-info/top_level.txt +0 -0
  84. {lollms_client-1.3.7 → lollms_client-1.3.8}/test/test_lollms_discussion.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lollms_client
3
- Version: 1.3.7
3
+ Version: 1.3.8
4
4
  Summary: A client library for LoLLMs generate endpoint
5
5
  Author-email: ParisNeo <parisneoai@gmail.com>
6
6
  License: Apache Software License
@@ -8,7 +8,7 @@ from lollms_client.lollms_utilities import PromptReshaper # Keep general utiliti
8
8
  from lollms_client.lollms_mcp_binding import LollmsMCPBinding, LollmsMCPBindingManager
9
9
  from lollms_client.lollms_llm_binding import LollmsLLMBindingManager
10
10
 
11
- __version__ = "1.3.7" # Updated version
11
+ __version__ = "1.3.8" # Updated version
12
12
 
13
13
  # Optionally, you could define __all__ if you want to be explicit about exports
14
14
  __all__ = [
@@ -205,46 +205,46 @@
205
205
  "nvidia/llama-3.1-nemotron-ultra-253b-v1": 131072,
206
206
  "nvidia/llama-3.1-nemotron-ultra-253b-v1:free": 131072,
207
207
  "nvidia/llama-3.3-nemotron-super-49b-v1": 131072,
208
- "openai/chatgpt-4o-latest": 128000,
209
- "openai/codex-mini": 2048,
210
- "openai/gpt-3.5-turbo": 4096,
211
- "openai/gpt-3.5-turbo-0613": 4096,
212
- "openai/gpt-3.5-turbo-16k": 16384,
213
- "openai/gpt-3.5-turbo-instruct": 4096,
214
- "openai/gpt-4": 8192,
215
- "openai/gpt-4-0314": 8192,
216
- "openai/gpt-4-1106-preview": 128000,
217
- "openai/gpt-4-turbo": 128000,
218
- "openai/gpt-4-turbo-preview": 128000,
219
- "openai/gpt-4.1": 128000,
220
- "openai/gpt-4.1-mini": 128000,
221
- "openai/gpt-4.1-nano": 128000,
222
- "openai/gpt-4o": 128000,
223
- "openai/gpt-4o-2024-05-13": 128000,
224
- "openai/gpt-4o-2024-08-06": 128000,
225
- "openai/gpt-4o-2024-11-20": 128000,
226
- "openai/gpt-4o-mini": 128000,
227
- "openai/gpt-4o-mini-2024-07-18": 128000,
228
- "openai/gpt-4o-mini-search-preview": 128000,
229
- "openai/gpt-4o-search-preview": 128000,
230
- "openai/gpt-4o:extended": 128000,
231
- "openai/gpt-5": 200000,
232
- "openai/gpt-5-chat": 200000,
233
- "openai/gpt-5-mini": 200000,
234
- "openai/gpt-5-nano": 200000,
235
- "openai/gpt-oss-120b": 128000,
236
- "openai/gpt-oss-20b": 128000,
237
- "openai/gpt-oss-20b:free": 128000,
238
- "openai/o1": 128000,
239
- "openai/o1-mini": 128000,
240
- "openai/o1-mini-2024-09-12": 128000,
241
- "openai/o1-pro": 128000,
242
- "openai/o3": 200000,
243
- "openai/o3-mini": 200000,
244
- "openai/o3-mini-high": 200000,
245
- "openai/o3-pro": 200000,
246
- "openai/o4-mini": 128000,
247
- "openai/o4-mini-high": 128000,
208
+ "chatgpt-4o-latest": 128000,
209
+ "codex-mini": 2048,
210
+ "gpt-3.5-turbo": 4096,
211
+ "gpt-3.5-turbo-0613": 4096,
212
+ "gpt-3.5-turbo-16k": 16384,
213
+ "gpt-3.5-turbo-instruct": 4096,
214
+ "gpt-4": 8192,
215
+ "gpt-4-0314": 8192,
216
+ "gpt-4-1106-preview": 128000,
217
+ "gpt-4-turbo": 128000,
218
+ "gpt-4-turbo-preview": 128000,
219
+ "gpt-4.1": 128000,
220
+ "gpt-4.1-mini": 128000,
221
+ "gpt-4.1-nano": 128000,
222
+ "gpt-4o": 128000,
223
+ "gpt-4o-2024-05-13": 128000,
224
+ "gpt-4o-2024-08-06": 128000,
225
+ "gpt-4o-2024-11-20": 128000,
226
+ "gpt-4o-mini": 128000,
227
+ "gpt-4o-mini-2024-07-18": 128000,
228
+ "gpt-4o-mini-search-preview": 128000,
229
+ "gpt-4o-search-preview": 128000,
230
+ "gpt-4o:extended": 128000,
231
+ "gpt-5": 200000,
232
+ "gpt-5-chat": 200000,
233
+ "gpt-5-mini": 200000,
234
+ "gpt-5-nano": 200000,
235
+ "gpt-oss-120b": 128000,
236
+ "gpt-oss-20b": 128000,
237
+ "gpt-oss-20b:free": 128000,
238
+ "o1": 128000,
239
+ "o1-mini": 128000,
240
+ "o1-mini-2024-09-12": 128000,
241
+ "o1-pro": 128000,
242
+ "o3": 200000,
243
+ "o3-mini": 200000,
244
+ "o3-mini-high": 200000,
245
+ "o3-pro": 200000,
246
+ "o4-mini": 128000,
247
+ "o4-mini-high": 128000,
248
248
  "opengvlab/internvl3-14b": 8192,
249
249
  "openrouter/auto": 8192,
250
250
  "perplexity/r1-1776": 32768,
@@ -365,8 +365,6 @@
365
365
  "dolphin": 32768,
366
366
  "openhermes": 8192,
367
367
  "gpt-oss": 128000,
368
- "gpt-3.5-turbo": 4096,
369
- "gpt-4": 8192,
370
368
  "grok-2": 128000,
371
369
  "grok-2-1212": 128000,
372
370
  "grok-2-vision-1212": 128000,
@@ -214,6 +214,60 @@ class LollmsDataManager:
214
214
  self.SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=self.engine)
215
215
  self.create_and_migrate_tables()
216
216
 
217
+ @staticmethod
218
+ def new_message(**kwargs) -> 'SimpleNamespace':
219
+ """A static factory method to create a new message data object.
220
+
221
+ This is a convenience method for building message objects to be passed
222
+ to LollmsDiscussion.from_messages. It returns a SimpleNamespace that
223
+ mimics the structure of an ORM message object for in-memory use.
224
+
225
+ Args:
226
+ **kwargs: Attributes for the new message (e.g., sender, content, sender_type).
227
+
228
+ Returns:
229
+ A SimpleNamespace object representing the message data.
230
+ """
231
+ # Set default sender based on sender_type if not provided
232
+ if 'sender' not in kwargs:
233
+ if kwargs.get('sender_type') == 'user':
234
+ kwargs['sender'] = 'user'
235
+ else:
236
+ kwargs['sender'] = 'assistant'
237
+
238
+ # Ensure default sender_type if not provided
239
+ if 'sender_type' not in kwargs:
240
+ if kwargs.get('sender') == 'user':
241
+ kwargs['sender_type'] = 'user'
242
+ else:
243
+ kwargs['sender_type'] = 'assistant'
244
+
245
+ # Default values for a new message
246
+ message_data = {
247
+ 'id': str(uuid.uuid4()),
248
+ 'parent_id': None, # Will be set by from_messages
249
+ 'discussion_id': None, # Will be set by from_messages
250
+ 'created_at': datetime.utcnow(),
251
+ 'raw_content': kwargs.get('content'),
252
+ 'thoughts': None,
253
+ 'scratchpad': None,
254
+ 'tokens': None,
255
+ 'binding_name': None,
256
+ 'model_name': None,
257
+ 'generation_speed': None,
258
+ 'message_metadata': {},
259
+ 'images': [],
260
+ 'active_images': [],
261
+ }
262
+
263
+ # Override defaults with user-provided kwargs
264
+ message_data.update(kwargs)
265
+
266
+ # Handle metadata alias
267
+ if 'metadata' in message_data:
268
+ message_data['message_metadata'] = message_data.pop('metadata')
269
+
270
+ return SimpleNamespace(**message_data)
217
271
  def create_and_migrate_tables(self):
218
272
  """Creates all tables if they don't exist and performs simple schema migrations."""
219
273
  self.Base.metadata.create_all(bind=self.engine)
@@ -516,6 +570,58 @@ class LollmsDiscussion:
516
570
  self.get_discussion_images()
517
571
 
518
572
 
573
+ @classmethod
574
+ def from_messages(
575
+ cls,
576
+ messages: List[Any],
577
+ lollms_client: 'LollmsClient',
578
+ db_manager: Optional[LollmsDataManager] = None,
579
+ **kwargs
580
+ ) -> 'LollmsDiscussion':
581
+ """Creates a new discussion instance directly from a list of message objects.
582
+
583
+ This factory is useful for creating temporary or programmatic discussions
584
+ without manually adding each message. Messages are chained sequentially.
585
+
586
+ Args:
587
+ messages: A list of message-like objects (e.g., SimpleNamespace from
588
+ LollmsMessage.new_message).
589
+ lollms_client: The LollmsClient instance for the discussion.
590
+ db_manager: An optional LollmsDataManager to make the discussion persistent.
591
+ **kwargs: Additional arguments for the new discussion (e.g., system_prompt).
592
+
593
+ Returns:
594
+ A new LollmsDiscussion instance populated with the provided messages.
595
+ """
596
+ # Create a new, empty discussion
597
+ discussion = cls.create_new(
598
+ lollms_client=lollms_client,
599
+ db_manager=db_manager,
600
+ **kwargs
601
+ )
602
+
603
+ last_message_id = None
604
+ for msg_data in messages:
605
+ # Convert the message-like object to a dict for add_message
606
+ if isinstance(msg_data, SimpleNamespace):
607
+ msg_kwargs = msg_data.__dict__.copy()
608
+ elif isinstance(msg_data, dict):
609
+ msg_kwargs = msg_data.copy()
610
+ else:
611
+ raise TypeError("message objects must be of type dict or SimpleNamespace")
612
+
613
+ # Set the parent to the previous message in the list
614
+ msg_kwargs['parent_id'] = last_message_id
615
+
616
+ # Add the message and update the last_message_id for the next iteration
617
+ new_msg = discussion.add_message(**msg_kwargs)
618
+ last_message_id = new_msg.id
619
+
620
+ # The active_branch_id is already set to the last message by add_message,
621
+ # so no further action is needed.
622
+
623
+ return discussion
624
+
519
625
  @classmethod
520
626
  def create_new(cls, lollms_client: 'LollmsClient', db_manager: Optional[LollmsDataManager] = None, **kwargs) -> 'LollmsDiscussion':
521
627
  """Creates a new discussion and persists it if a db_manager is provided.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lollms_client
3
- Version: 1.3.7
3
+ Version: 1.3.8
4
4
  Summary: A client library for LoLLMs generate endpoint
5
5
  Author-email: ParisNeo <parisneoai@gmail.com>
6
6
  License: Apache Software License
File without changes
File without changes
File without changes