langroid 0.27.1__py3-none-any.whl → 0.27.3__py3-none-any.whl

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.
langroid/agent/base.py CHANGED
@@ -116,6 +116,10 @@ async def async_noop_fn(*args: List[Any], **kwargs: Dict[str, Any]) -> None:
116
116
  pass
117
117
 
118
118
 
119
+ async def async_lambda_noop_fn() -> Callable[..., Coroutine[Any, Any, None]]:
120
+ return async_noop_fn
121
+
122
+
119
123
  class Agent(ABC):
120
124
  """
121
125
  An Agent is an abstraction that encapsulates mainly two components:
@@ -169,7 +173,7 @@ class Agent(ABC):
169
173
 
170
174
  self.callbacks = SimpleNamespace(
171
175
  start_llm_stream=lambda: noop_fn,
172
- start_llm_stream_async=async_noop_fn,
176
+ start_llm_stream_async=async_lambda_noop_fn,
173
177
  cancel_llm_stream=noop_fn,
174
178
  finish_llm_stream=noop_fn,
175
179
  show_llm_response=noop_fn,
@@ -1,4 +1,3 @@
1
- import ast
2
1
  import json
3
2
  import logging
4
3
  from abc import ABC, abstractmethod
@@ -21,7 +20,7 @@ from typing import (
21
20
  from langroid.cachedb.base import CacheDBConfig
22
21
  from langroid.cachedb.redis_cachedb import RedisCacheConfig
23
22
  from langroid.parsing.agent_chats import parse_message
24
- from langroid.parsing.parse_json import top_level_json_field
23
+ from langroid.parsing.parse_json import parse_imperfect_json, top_level_json_field
25
24
  from langroid.prompts.dialog import collate_chat_history
26
25
  from langroid.pydantic_v1 import BaseModel, BaseSettings, Field
27
26
  from langroid.utils.configuration import settings
@@ -97,7 +96,17 @@ class LLMFunctionCall(BaseModel):
97
96
  # so we try to be safe by removing newlines.
98
97
  if fun_args_str is not None:
99
98
  fun_args_str = fun_args_str.replace("\n", "").strip()
100
- fun_args = ast.literal_eval(fun_args_str)
99
+ dict_or_list = parse_imperfect_json(fun_args_str)
100
+
101
+ if not isinstance(dict_or_list, dict):
102
+ raise ValueError(
103
+ f"""
104
+ Invalid function args: {fun_args_str}
105
+ parsed as {dict_or_list},
106
+ which is not a valid dict.
107
+ """
108
+ )
109
+ fun_args = dict_or_list
101
110
  else:
102
111
  fun_args = None
103
112
  fun_call.arguments = fun_args
@@ -68,7 +68,7 @@ else:
68
68
  OLLAMA_BASE_URL = "http://localhost:11434/v1"
69
69
 
70
70
  OPENROUTER_BASE_URL = "https://openrouter.ai/api/v1"
71
- GEMINI_BASE_URL = "https://generativelanguage.googleapis.com/v1beta/"
71
+ GEMINI_BASE_URL = "https://generativelanguage.googleapis.com/v1beta/openai"
72
72
  GLHF_BASE_URL = "https://glhf.chat/api/openai/v1"
73
73
  OLLAMA_API_KEY = "ollama"
74
74
  DUMMY_API_KEY = "xxx"
@@ -102,9 +102,9 @@ class OpenAIChatModel(str, Enum):
102
102
  class GeminiModel(str, Enum):
103
103
  """Enum for Gemini models"""
104
104
 
105
- GEMINI_1_5_FLASH = "gemini-1.5-flash"
106
- GEMINI_1_5_FLASH_8B = "gemini-1.5-flash-8b"
107
- GEMINI_1_5_PRO = "gemini-1.5-pro"
105
+ GEMINI_1_5_FLASH = "gemini/gemini-1.5-flash"
106
+ GEMINI_1_5_FLASH_8B = "gemini/gemini-1.5-flash-8b"
107
+ GEMINI_1_5_PRO = "gemini/gemini-1.5-pro"
108
108
 
109
109
 
110
110
  class OpenAICompletionModel(str, Enum):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: langroid
3
- Version: 0.27.1
3
+ Version: 0.27.3
4
4
  Summary: Harness LLMs with Multi-Agent Programming
5
5
  License: MIT
6
6
  Author: Prasad Chalasani
@@ -1,6 +1,6 @@
1
1
  langroid/__init__.py,sha256=z_fCOLQJPOw3LLRPBlFB5-2HyCjpPgQa4m4iY5Fvb8Y,1800
2
2
  langroid/agent/__init__.py,sha256=ll0Cubd2DZ-fsCMl7e10hf9ZjFGKzphfBco396IKITY,786
3
- langroid/agent/base.py,sha256=XrYY8c9KlzhpxRCVjqAlA1Ybc4C_3Wf5zFGV9tggU5c,76754
3
+ langroid/agent/base.py,sha256=UIsiM8SQjDVShOyaFJZbPkBStM5bMexFfyd0M1j4u_w,76866
4
4
  langroid/agent/batch.py,sha256=qK3ph6VNj_1sOhfXCZY4r6gh035DglDKU751p8BU0tY,14665
5
5
  langroid/agent/callbacks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
6
  langroid/agent/callbacks/chainlit.py,sha256=C6zzzYC30qC4eMA7al7eFpRoTgoe3475kaMKyXgQM0Q,20695
@@ -72,10 +72,10 @@ langroid/language_models/.chainlit/config.toml,sha256=1t5lHORGzc2E6dkaO9P15jYHu2
72
72
  langroid/language_models/.chainlit/translations/en-US.json,sha256=DAFz2HjOFFfboCStrUfKFg2BpplJPK_OOtixwF_GivY,9931
73
73
  langroid/language_models/__init__.py,sha256=8o8D8Lxaq961_oxVpB_bC2iEJ1GXJqYXMlwUcn6OJb8,976
74
74
  langroid/language_models/azure_openai.py,sha256=DdWq_pRFI9PT5LwUy9TXDox90TY-mkP5MKxFwoM42x4,7250
75
- langroid/language_models/base.py,sha256=Fz_mosaDxUuoXhMf5_bjNEtoPuQIFuiwJRwp55zAFas,23410
75
+ langroid/language_models/base.py,sha256=6hXR-bclyPif-BvFbyXevP-gEwiawQAJHX3N1AKNei0,23786
76
76
  langroid/language_models/config.py,sha256=9Q8wk5a7RQr8LGMT_0WkpjY8S4ywK06SalVRjXlfCiI,378
77
77
  langroid/language_models/mock_lm.py,sha256=5BgHKDVRWFbUwDT_PFgTZXz9-k8wJSA2e3PZmyDgQ1k,4022
78
- langroid/language_models/openai_gpt.py,sha256=nLxgD3oZqRzPecHWGrBNlqEszrwd64Yw4FkfRb-Ut04,73943
78
+ langroid/language_models/openai_gpt.py,sha256=jejB-LbMFMqzw2GMOLBVl_FdP6vwYbFj7g4nZqxQdOI,73970
79
79
  langroid/language_models/prompt_formatter/__init__.py,sha256=2-5cdE24XoFDhifOLl8yiscohil1ogbP1ECkYdBlBsk,372
80
80
  langroid/language_models/prompt_formatter/base.py,sha256=eDS1sgRNZVnoajwV_ZIha6cba5Dt8xjgzdRbPITwx3Q,1221
81
81
  langroid/language_models/prompt_formatter/hf_formatter.py,sha256=PVJppmjRvD-2DF-XNC6mE05vTZ9wbu37SmXwZBQhad0,5055
@@ -142,8 +142,8 @@ langroid/vector_store/meilisearch.py,sha256=6frB7GFWeWmeKzRfLZIvzRjllniZ1cYj3Hmh
142
142
  langroid/vector_store/momento.py,sha256=UNHGT6jXuQtqY9f6MdqGU14bVnS0zHgIJUa30ULpUJo,10474
143
143
  langroid/vector_store/qdrant_cloud.py,sha256=3im4Mip0QXLkR6wiqVsjV1QvhSElfxdFSuDKddBDQ-4,188
144
144
  langroid/vector_store/qdrantdb.py,sha256=v7mCsijc2GdRJyil-yFaUVAX4SX5D75mD3vzlpjCMuo,17393
145
- pyproject.toml,sha256=efi_9gPK4mfJbiS4gXxQqbzluAn4dFpElRiXtnE_FdI,7496
146
- langroid-0.27.1.dist-info/LICENSE,sha256=EgVbvA6VSYgUlvC3RvPKehSg7MFaxWDsFuzLOsPPfJg,1065
147
- langroid-0.27.1.dist-info/METADATA,sha256=LXd1c6AP7kkTxKN0saAIEHKaMSq4bEj31xJHOQtixPA,57521
148
- langroid-0.27.1.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
149
- langroid-0.27.1.dist-info/RECORD,,
145
+ pyproject.toml,sha256=Ny-MFKENoFo_MeVHdQLYA6ROKOe02yyubOjJhAj-cko,7496
146
+ langroid-0.27.3.dist-info/LICENSE,sha256=EgVbvA6VSYgUlvC3RvPKehSg7MFaxWDsFuzLOsPPfJg,1065
147
+ langroid-0.27.3.dist-info/METADATA,sha256=QnipDRvdw35Qwi5yQKDfJjFvdXNtFl1pvsM48hwF2WU,57521
148
+ langroid-0.27.3.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
149
+ langroid-0.27.3.dist-info/RECORD,,
pyproject.toml CHANGED
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "langroid"
3
- version = "0.27.1"
3
+ version = "0.27.3"
4
4
  description = "Harness LLMs with Multi-Agent Programming"
5
5
  authors = ["Prasad Chalasani <pchalasani@gmail.com>"]
6
6
  readme = "README.md"