ws-bom-robot-app 0.0.97__py3-none-any.whl → 0.0.98__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.
@@ -1,4 +1,4 @@
1
- from typing import Any, Optional, Literal
1
+ from typing import Any, Optional
2
2
  from langchain.agents import AgentExecutor, create_tool_calling_agent
3
3
  from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
4
4
  from langchain_core.runnables import RunnableLambda
@@ -12,10 +12,8 @@ from ws_bom_robot_app.llm.defaut_prompt import default_prompt, tool_prompt
12
12
 
13
13
  class AgentLcel:
14
14
 
15
- def __init__(self, llm: LlmInterface, sys_message: str, sys_context: AgentContext, tools: list, ouput_model: str | dict = None, rules: LlmRules = None):
15
+ def __init__(self, llm: LlmInterface, sys_message: str, sys_context: AgentContext, tools: list, rules: LlmRules = None):
16
16
  self.sys_message = chevron.render(template=sys_message,data=sys_context)
17
- self.ouput_model = ouput_model
18
- self.output_parser = None
19
17
  self.__llm = llm
20
18
  self.__tools = tools
21
19
  self.rules = rules
@@ -29,10 +27,6 @@ class AgentLcel:
29
27
  message : LlmMessage = input[self.memory_key][-1]
30
28
  rules_prompt = await get_rules(self.embeddings, self.rules, message.content) if self.rules else ""
31
29
  system = default_prompt + (tool_prompt(render_text_description(self.__tools)) if len(self.__tools)>0 else "") + self.sys_message + rules_prompt
32
- if isinstance(self.ouput_model, dict):
33
- output_parser = self.__llm.get_parser(type="json", model=self.ouput_model)
34
- system += "\n\nFormat instructions:\n{format_instructions}".strip()
35
-
36
30
  prompt = ChatPromptTemplate(
37
31
  messages=[
38
32
  SystemMessage(content=system), #from ("system",system) to avoid improper f-string substitutions
@@ -41,13 +35,6 @@ class AgentLcel:
41
35
  ],
42
36
  template_format=None,
43
37
  )
44
- if output_parser:
45
- prompt.partial(
46
- format_instructions=output_parser.get_format_instructions()
47
- )
48
- self.output_parser = output_parser
49
- else:
50
- self.output_parser = self.__llm.get_parser(type="text")
51
38
  return prompt
52
39
 
53
40
  def __create_agent(self) -> AgentExecutor:
@@ -58,6 +45,6 @@ class AgentLcel:
58
45
  }
59
46
  | RunnableLambda(self.__create_prompt)
60
47
  | self.__llm_with_tools
61
- | self.__llm.get_parser("text", None if not self.output_parser else "json", self.ouput_model)
48
+ | self.__llm.get_parser()
62
49
  )
63
50
  return AgentExecutor(agent=agent,tools=self.__tools,verbose=False)
@@ -127,7 +127,6 @@ async def __stream(rq: StreamRequest, ctx: Request, queue: Queue, formatted: boo
127
127
  sys_message=rq.system_message,
128
128
  sys_context=rq.system_context,
129
129
  tools=get_structured_tools(__llm, tools=rq.app_tools, callbacks=[callbacks], queue=queue),
130
- ouput_model=rq.jsonOutputModel,
131
130
  rules=rq.rules
132
131
  )
133
132
  try:
@@ -150,8 +150,6 @@ class LlmApp(BaseModel):
150
150
  app_tools: Optional[List[LlmAppTool]] = Field([], validation_alias=AliasChoices("appTools","app_tools"))
151
151
  vector_type: Optional[str] = "faiss"
152
152
  vector_db: Optional[str] = Field(None, validation_alias=AliasChoices("vectorDb","vector_db"))
153
- output_model: Optional[str] = Field(None, validation_alias=AliasChoices("outputModel","output_model"))
154
- jsonOutputModel: Optional[dict] = Field(None, validation_alias=AliasChoices("jsonOutputModel","json_output_model"))
155
153
  rules: Optional[LlmRules] = None
156
154
  fine_tuned_model: Optional[str] = Field(None, validation_alias=AliasChoices("fineTunedModel","fine_tuned_model"))
157
155
  lang_chain_tracing: Optional[bool] = Field(False, validation_alias=AliasChoices("langChainTracing","lang_chain_tracing"))
@@ -1,4 +1,4 @@
1
- from typing import Optional, Literal
1
+ from typing import Optional
2
2
  from urllib.parse import urlparse
3
3
  from langchain_core.embeddings import Embeddings
4
4
  from langchain_core.language_models import BaseChatModel
@@ -34,14 +34,9 @@ class LlmInterface:
34
34
  from langchain.agents.format_scratchpad.openai_tools import format_to_openai_tool_messages
35
35
  return format_to_openai_tool_messages(intermediate_steps=intermadiate_steps)
36
36
 
37
- def get_parser(self, type: Literal["text", "json"] = "text", model: Optional[dict] = None):
37
+ def get_parser(self):
38
38
  from langchain.agents.output_parsers.openai_tools import OpenAIToolsAgentOutputParser
39
- from langchain_core.output_parsers import JsonOutputParser
40
- from pydantic import create_model
41
- if type == "json":
42
- return JsonOutputParser(pydantic_object=create_model('json_schema', **{k: (type(v), ...) for k, v in model.items()}))
43
39
  return OpenAIToolsAgentOutputParser()
44
-
45
40
  async def _format_multimodal_image_message(self, message: dict) -> dict:
46
41
  return {
47
42
  "type": "image_url",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ws_bom_robot_app
3
- Version: 0.0.97
3
+ Version: 0.0.98
4
4
  Summary: A FastAPI application serving ws bom/robot/llm platform ai.
5
5
  Home-page: https://github.com/websolutespa/bom
6
6
  Author: Websolute Spa
@@ -10,21 +10,21 @@ ws_bom_robot_app/llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
10
10
  ws_bom_robot_app/llm/agent_context.py,sha256=uatHJ8wcRly6h0S762BgfzDMpmcwCHwNzwo37aWjeE0,1305
11
11
  ws_bom_robot_app/llm/agent_description.py,sha256=5IP0qFSJvaE3zjGS7f0W1DuiegP0RHXRMBoDC5pCofA,4779
12
12
  ws_bom_robot_app/llm/agent_handler.py,sha256=HAg3qmj-QY_k7P-GfAKna1tKdmZaTHrZbNWJc0eol3A,7858
13
- ws_bom_robot_app/llm/agent_lcel.py,sha256=vKgUN7Kt7HXhzSjC6WfRGWE_hvULf1BeGmBkM_z6tKk,3203
13
+ ws_bom_robot_app/llm/agent_lcel.py,sha256=QRgGkdVXCwDXWjJj8R8qaYeLqUfpaYjtRnl3GrZCwVM,2530
14
14
  ws_bom_robot_app/llm/api.py,sha256=jMoiKiD5HNxGu6gTb5_qZ5UU8d2uJ7UVrdLseDStI6o,7634
15
15
  ws_bom_robot_app/llm/defaut_prompt.py,sha256=D9dn8yPveu0bVwGM1wQWLYftmBs5O76o0R_caLLll8w,1121
16
16
  ws_bom_robot_app/llm/evaluator.py,sha256=tUyPX1oGZEjSiO4JixwNlgv6BI9cUHSmcAsTCpBnIn4,13322
17
- ws_bom_robot_app/llm/main.py,sha256=q1bBhh3b6xgR6Z1YmfSOYkCJnhAjixjyAcq09LtxUds,5867
17
+ ws_bom_robot_app/llm/main.py,sha256=GZ6Bkb3rNl4xf2ZXGkl9bhZrIRsvi40vUIRDJ-WwRAc,5828
18
18
  ws_bom_robot_app/llm/nebuly_handler.py,sha256=wFO2UG849kv5hmjM5EoOp0Jsloy-BtQjrRh4pVosnfU,8163
19
19
  ws_bom_robot_app/llm/feedbacks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
20
  ws_bom_robot_app/llm/feedbacks/feedback_manager.py,sha256=vNcZLG9IKhurAk7hjBqyFgQTjnh3Cd4GnxeYsX7ZdiA,2922
21
21
  ws_bom_robot_app/llm/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
- ws_bom_robot_app/llm/models/api.py,sha256=v2rKz4kuyA4IQr49LVxijE8fMzX19BzSR0pqaeOQnYo,12437
22
+ ws_bom_robot_app/llm/models/api.py,sha256=bahqx9rdP6jM9Kk9VGkqT-bhASJeuAzO_5Ir6tBxDIU,12212
23
23
  ws_bom_robot_app/llm/models/base.py,sha256=1TqxuTK3rjJEALn7lvgoen_1ba3R2brAgGx6EDTtDZo,152
24
24
  ws_bom_robot_app/llm/models/feedback.py,sha256=pYNQGxNOBgeAAfdJLI95l7ePLBI5tVdsgnyjp5oMOQU,1722
25
25
  ws_bom_robot_app/llm/models/kb.py,sha256=oVSw6_dmNxikAHrPqcfxDXz9M0ezLIYuxpgvzfs_Now,9514
26
26
  ws_bom_robot_app/llm/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
- ws_bom_robot_app/llm/providers/llm_manager.py,sha256=XVmuiL2jQAmYpENx-kDmvuDaWwO80TdcyKVFi9vB7kw,16945
27
+ ws_bom_robot_app/llm/providers/llm_manager.py,sha256=oVeEmZUnR1ysV-BI_zpwQ-gpXqmhSzjKFQQAHtaFGSI,16596
28
28
  ws_bom_robot_app/llm/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
29
  ws_bom_robot_app/llm/tools/tool_builder.py,sha256=CtZwJ94aj0YGA3yVWkyCUxNE7WgU2zWjhl_tEfEskxw,3432
30
30
  ws_bom_robot_app/llm/tools/tool_manager.py,sha256=avoFERE0v9MFQ3pUBMug8eGYIXbIYl7NqkP1kjNee7s,15439
@@ -70,7 +70,7 @@ ws_bom_robot_app/llm/vector_store/loader/__init__.py,sha256=47DEQpj8HBSa-_TImW-5
70
70
  ws_bom_robot_app/llm/vector_store/loader/base.py,sha256=GjUS2oaz0LHOSal5pipBkomZtrYUNcKPSd8bzhUU5Dc,6889
71
71
  ws_bom_robot_app/llm/vector_store/loader/docling.py,sha256=IOv1A0HSIWiHWQFzI4fdApfxrKgXOqwmC3mPXlKplqQ,4012
72
72
  ws_bom_robot_app/llm/vector_store/loader/json_loader.py,sha256=LDppW0ZATo4_1hh-KlsAM3TLawBvwBxva_a7k5Oz1sc,858
73
- ws_bom_robot_app-0.0.97.dist-info/METADATA,sha256=MNyfG6YQ70X3KYYW9fJC38EcTpP9YU5UTnYPjnwNMeQ,10116
74
- ws_bom_robot_app-0.0.97.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
75
- ws_bom_robot_app-0.0.97.dist-info/top_level.txt,sha256=Yl0akyHVbynsBX_N7wx3H3ZTkcMLjYyLJs5zBMDAKcM,17
76
- ws_bom_robot_app-0.0.97.dist-info/RECORD,,
73
+ ws_bom_robot_app-0.0.98.dist-info/METADATA,sha256=-Bj9xROz40XE2XsA97v0Bl7hIjiZFKzin7c5pNITwgA,10116
74
+ ws_bom_robot_app-0.0.98.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
75
+ ws_bom_robot_app-0.0.98.dist-info/top_level.txt,sha256=Yl0akyHVbynsBX_N7wx3H3ZTkcMLjYyLJs5zBMDAKcM,17
76
+ ws_bom_robot_app-0.0.98.dist-info/RECORD,,