ws-bom-robot-app 0.0.41__tar.gz → 0.0.42__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.
- {ws_bom_robot_app-0.0.41/ws_bom_robot_app.egg-info → ws_bom_robot_app-0.0.42}/PKG-INFO +1 -1
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/setup.py +1 -1
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/main.py +40 -16
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/providers/llm_manager.py +7 -5
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42/ws_bom_robot_app.egg-info}/PKG-INFO +1 -1
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/MANIFEST.in +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/README.md +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/pyproject.toml +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/requirements.txt +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/setup.cfg +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/__init__.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/auth.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/config.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/cron_manager.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/__init__.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/agent_description.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/agent_handler.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/agent_lcel.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/api.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/defaut_prompt.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/models/__init__.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/models/api.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/models/base.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/models/kb.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/providers/__init__.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/settings.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/tools/__init__.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/tools/models/__init__.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/tools/models/main.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/tools/tool_builder.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/tools/tool_manager.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/tools/utils.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/utils/__init__.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/utils/agent.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/utils/chunker.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/utils/download.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/utils/kb.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/utils/print.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/utils/secrets.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/utils/webhooks.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/__init__.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/db/__init__.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/db/base.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/db/chroma.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/db/faiss.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/db/manager.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/db/qdrant.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/generator.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/integration/__init__.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/integration/azure.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/integration/base.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/integration/confluence.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/integration/dropbox.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/integration/gcs.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/integration/github.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/integration/googledrive.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/integration/jira.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/integration/manager.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/integration/s3.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/integration/sftp.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/integration/sharepoint.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/integration/sitemap.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/integration/slack.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/loader/__init__.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/loader/base.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/loader/docling.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/loader/json_loader.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/main.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/task_manager.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/util.py +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app.egg-info/SOURCES.txt +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app.egg-info/dependency_links.txt +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app.egg-info/requires.txt +0 -0
- {ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app.egg-info/top_level.txt +0 -0
|
@@ -4,7 +4,7 @@ _requirements = [line.split('#')[0].strip() for line in open("requirements.txt")
|
|
|
4
4
|
|
|
5
5
|
setup(
|
|
6
6
|
name="ws_bom_robot_app",
|
|
7
|
-
version="0.0.
|
|
7
|
+
version="0.0.42",
|
|
8
8
|
description="A FastAPI application serving ws bom/robot/llm platform ai.",
|
|
9
9
|
long_description=open("README.md", encoding='utf-8').read(),
|
|
10
10
|
long_description_content_type="text/markdown",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from asyncio import Queue
|
|
2
|
-
import asyncio, json, logging, os, traceback
|
|
2
|
+
import asyncio, json, logging, os, traceback, re
|
|
3
3
|
from fastapi import Request
|
|
4
4
|
from langchain.callbacks.tracers import LangChainTracer
|
|
5
5
|
from langchain_core.callbacks.base import AsyncCallbackHandler
|
|
@@ -28,6 +28,18 @@ async def invoke(rq: InvokeRequest) -> str:
|
|
|
28
28
|
result: AIMessage = await processor.run_agent(_msg)
|
|
29
29
|
return {"result": result.content}
|
|
30
30
|
|
|
31
|
+
def _parse_formatted_message(message: str) -> str:
|
|
32
|
+
try:
|
|
33
|
+
text_fragments = []
|
|
34
|
+
quoted_strings = re.findall(r'"([^"\\]*(?:\\.[^"\\]*)*)"', message)
|
|
35
|
+
for string in quoted_strings:
|
|
36
|
+
if not string.startswith(('threadId', 'type')) and len(string) > 1:
|
|
37
|
+
text_fragments.append(string)
|
|
38
|
+
result = ''.join(text_fragments)
|
|
39
|
+
result = result.replace('\\n', '\n')
|
|
40
|
+
except:
|
|
41
|
+
result = message
|
|
42
|
+
return result
|
|
31
43
|
async def __stream(rq: StreamRequest, ctx: Request, queue: Queue,formatted: bool = True) -> None:
|
|
32
44
|
await rq.initialize()
|
|
33
45
|
#os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"
|
|
@@ -41,21 +53,33 @@ async def __stream(rq: StreamRequest, ctx: Request, queue: Queue,formatted: bool
|
|
|
41
53
|
|
|
42
54
|
#CREATION OF CHAT HISTORY FOR AGENT
|
|
43
55
|
for message in rq.messages:
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
56
|
+
if message.role in ["human","user"]:
|
|
57
|
+
settings.chat_history.append(HumanMessage(content=message.content))
|
|
58
|
+
elif message.role in ["ai","assistant"]:
|
|
59
|
+
message_content = ""
|
|
60
|
+
if formatted:
|
|
61
|
+
if '{\"type\":\"string\"' in message.content:
|
|
62
|
+
try:
|
|
63
|
+
json_msg = json.loads('[' + message.content[:-1] + ']')
|
|
64
|
+
for msg in json_msg:
|
|
65
|
+
if msg.get("content"):
|
|
66
|
+
message_content += msg["content"]
|
|
67
|
+
except:
|
|
68
|
+
message_content = _parse_formatted_message(message.content)
|
|
69
|
+
elif '{\"type\":\"text\"' in message.content:
|
|
70
|
+
try:
|
|
71
|
+
json_msg = json.loads('[' + message.content[:-1] + ']')
|
|
72
|
+
for msg in json_msg:
|
|
73
|
+
if msg.get("text"):
|
|
74
|
+
message_content += msg["text"]
|
|
75
|
+
except:
|
|
76
|
+
message_content = _parse_formatted_message(message.content)
|
|
77
|
+
else:
|
|
78
|
+
message_content = _parse_formatted_message(message.content)
|
|
79
|
+
else:
|
|
80
|
+
message_content = message.content
|
|
81
|
+
if message_content:
|
|
82
|
+
settings.chat_history.append(AIMessage(content=message_content))
|
|
59
83
|
|
|
60
84
|
if rq.lang_chain_tracing:
|
|
61
85
|
client = LangSmithClient(
|
{ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/providers/llm_manager.py
RENAMED
|
@@ -44,7 +44,9 @@ class OpenAI(LlmInterface):
|
|
|
44
44
|
|
|
45
45
|
def get_llm(self):
|
|
46
46
|
from langchain_openai import ChatOpenAI
|
|
47
|
-
chat = ChatOpenAI(
|
|
47
|
+
chat = ChatOpenAI(
|
|
48
|
+
api_key=self.config.api_key or os.getenv("OPENAI_API_KEY"),
|
|
49
|
+
model=self.config.model)
|
|
48
50
|
if not any(self.config.model.startswith(prefix) for prefix in ["o1", "o3"]):
|
|
49
51
|
chat.temperature = self.config.temperature
|
|
50
52
|
chat.streaming = True
|
|
@@ -60,7 +62,7 @@ class DeepSeek(LlmInterface):
|
|
|
60
62
|
def get_llm(self):
|
|
61
63
|
from langchain_openai import ChatOpenAI
|
|
62
64
|
return ChatOpenAI(
|
|
63
|
-
api_key=self.config.api_key,
|
|
65
|
+
api_key=self.config.api_key or os.getenv("DEEPSEEK_API_KEY"),
|
|
64
66
|
model=self.config.model,
|
|
65
67
|
base_url="https://api.deepseek.com/v1",
|
|
66
68
|
max_tokens=8192,
|
|
@@ -79,7 +81,7 @@ class Google(LlmInterface):
|
|
|
79
81
|
from langchain_google_genai.chat_models import ChatGoogleGenerativeAI
|
|
80
82
|
return ChatGoogleGenerativeAI(
|
|
81
83
|
name="chat",
|
|
82
|
-
api_key=self.config.api_key,
|
|
84
|
+
api_key=self.config.api_key or os.getenv("GOOGLE_API_KEY"),
|
|
83
85
|
model=self.config.model,
|
|
84
86
|
temperature=self.config.temperature,
|
|
85
87
|
disable_streaming=False
|
|
@@ -131,7 +133,7 @@ class Anthropic(LlmInterface):
|
|
|
131
133
|
def get_llm(self):
|
|
132
134
|
from langchain_anthropic import ChatAnthropic
|
|
133
135
|
return ChatAnthropic(
|
|
134
|
-
api_key=self.config.api_key,
|
|
136
|
+
api_key=self.config.api_key or os.getenv("ANTHROPIC_API_KEY"),
|
|
135
137
|
model=self.config.model,
|
|
136
138
|
temperature=self.config.temperature,
|
|
137
139
|
streaming=True,
|
|
@@ -156,7 +158,7 @@ class Groq(LlmInterface):
|
|
|
156
158
|
def get_llm(self):
|
|
157
159
|
from langchain_groq import ChatGroq
|
|
158
160
|
return ChatGroq(
|
|
159
|
-
api_key=self.config.api_key,
|
|
161
|
+
api_key=self.config.api_key or os.getenv("GROQ_API_KEY"),
|
|
160
162
|
model=self.config.model,
|
|
161
163
|
#max_tokens=8192,
|
|
162
164
|
temperature=self.config.temperature,
|
|
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
|
|
File without changes
|
{ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/agent_description.py
RENAMED
|
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
|
{ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/providers/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/tools/models/__init__.py
RENAMED
|
File without changes
|
{ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/tools/models/main.py
RENAMED
|
File without changes
|
{ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/tools/tool_builder.py
RENAMED
|
File without changes
|
{ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/tools/tool_manager.py
RENAMED
|
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
|
|
File without changes
|
{ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/__init__.py
RENAMED
|
File without changes
|
{ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/db/__init__.py
RENAMED
|
File without changes
|
{ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/db/base.py
RENAMED
|
File without changes
|
{ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/db/chroma.py
RENAMED
|
File without changes
|
{ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/db/faiss.py
RENAMED
|
File without changes
|
{ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/db/manager.py
RENAMED
|
File without changes
|
{ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/db/qdrant.py
RENAMED
|
File without changes
|
{ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/generator.py
RENAMED
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app/llm/vector_store/loader/base.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ws_bom_robot_app-0.0.41 → ws_bom_robot_app-0.0.42}/ws_bom_robot_app.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|