cwyodmodules 0.3.22__py3-none-any.whl → 0.3.23__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.
- cwyodmodules/batch/utilities/chat_history/database_factory.py +3 -2
- cwyodmodules/batch/utilities/chat_history/postgresdbservice.py +3 -2
- cwyodmodules/batch/utilities/helpers/azure_blob_storage_client.py +7 -3
- cwyodmodules/batch/utilities/helpers/azure_computer_vision_client.py +3 -4
- cwyodmodules/batch/utilities/helpers/azure_form_recognizer_helper.py +4 -2
- cwyodmodules/batch/utilities/helpers/azure_identity_helper.py +63 -0
- cwyodmodules/batch/utilities/helpers/azure_postgres_helper.py +3 -2
- cwyodmodules/batch/utilities/helpers/azure_postgres_helper_light_rag.py +3 -2
- cwyodmodules/batch/utilities/helpers/azure_search_helper.py +8 -5
- cwyodmodules/batch/utilities/helpers/env_helper.py +11 -5
- cwyodmodules/batch/utilities/helpers/lightrag_helper.py +3 -2
- cwyodmodules/batch/utilities/helpers/llm_helper.py +5 -2
- cwyodmodules/batch/utilities/helpers/secret_helper.py +4 -2
- cwyodmodules/batch/utilities/integrated_vectorization/azure_search_datasource.py +4 -2
- cwyodmodules/batch/utilities/integrated_vectorization/azure_search_index.py +4 -2
- cwyodmodules/batch/utilities/integrated_vectorization/azure_search_indexer.py +4 -2
- cwyodmodules/batch/utilities/integrated_vectorization/azure_search_skillset.py +4 -2
- cwyodmodules/batch/utilities/orchestrator/semantic_kernel_orchestrator.py +6 -6
- cwyodmodules/batch/utilities/search/integrated_vectorization_search_handler.py +6 -3
- cwyodmodules/batch/utilities/tools/content_safety_checker.py +5 -3
- {cwyodmodules-0.3.22.dist-info → cwyodmodules-0.3.23.dist-info}/METADATA +1 -1
- {cwyodmodules-0.3.22.dist-info → cwyodmodules-0.3.23.dist-info}/RECORD +25 -24
- {cwyodmodules-0.3.22.dist-info → cwyodmodules-0.3.23.dist-info}/WHEEL +0 -0
- {cwyodmodules-0.3.22.dist-info → cwyodmodules-0.3.23.dist-info}/licenses/LICENSE +0 -0
- {cwyodmodules-0.3.22.dist-info → cwyodmodules-0.3.23.dist-info}/top_level.txt +0 -0
@@ -2,14 +2,15 @@
|
|
2
2
|
from ..helpers.env_helper import EnvHelper
|
3
3
|
from .cosmosdb import CosmosConversationClient
|
4
4
|
from .postgresdbservice import PostgresConversationClient
|
5
|
-
from azure.identity import DefaultAzureCredential
|
6
5
|
from ..helpers.config.database_type import DatabaseType
|
6
|
+
from ..helpers.azure_identity_helper import AzureIdentityHelper
|
7
7
|
|
8
8
|
|
9
9
|
class DatabaseFactory:
|
10
10
|
@staticmethod
|
11
11
|
def get_conversation_client():
|
12
12
|
env_helper: EnvHelper = EnvHelper()
|
13
|
+
azure_identity_helper = AzureIdentityHelper()
|
13
14
|
|
14
15
|
if env_helper.DATABASE_TYPE == DatabaseType.COSMOSDB.value:
|
15
16
|
DatabaseFactory._validate_env_vars(
|
@@ -25,7 +26,7 @@ class DatabaseFactory:
|
|
25
26
|
f"https://{env_helper.AZURE_COSMOSDB_ACCOUNT}.documents.azure.com:443/"
|
26
27
|
)
|
27
28
|
credential = (
|
28
|
-
|
29
|
+
azure_identity_helper.get_credential()
|
29
30
|
if not env_helper.AZURE_COSMOSDB_ACCOUNT_KEY
|
30
31
|
else env_helper.AZURE_COSMOSDB_ACCOUNT_KEY
|
31
32
|
)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import asyncpg
|
2
2
|
from datetime import datetime, timezone
|
3
|
-
from
|
3
|
+
from ..helpers.azure_identity_helper import AzureIdentityHelper
|
4
4
|
from .database_client_base import DatabaseClientBase
|
5
5
|
|
6
6
|
from logging import getLogger
|
@@ -18,6 +18,7 @@ class PostgresConversationClient(DatabaseClientBase):
|
|
18
18
|
def __init__(
|
19
19
|
self, user: str, host: str, database: str, enable_message_feedback: bool = False
|
20
20
|
):
|
21
|
+
self.azure_identity_helper = AzureIdentityHelper()
|
21
22
|
self.user = user
|
22
23
|
self.host = host
|
23
24
|
self.database = database
|
@@ -27,7 +28,7 @@ class PostgresConversationClient(DatabaseClientBase):
|
|
27
28
|
async def connect(self):
|
28
29
|
with tracer.start_as_current_span("PostgresConversationClient.connect"):
|
29
30
|
try:
|
30
|
-
credential =
|
31
|
+
credential = self.azure_identity_helper.get_credential()
|
31
32
|
token = credential.get_token(
|
32
33
|
"https://ossrdbms-aad.database.windows.net/.default"
|
33
34
|
).token
|
@@ -12,7 +12,7 @@ from azure.core.credentials import AzureNamedKeyCredential
|
|
12
12
|
from azure.storage.queue import QueueClient, BinaryBase64EncodePolicy
|
13
13
|
import chardet
|
14
14
|
from .env_helper import EnvHelper
|
15
|
-
from
|
15
|
+
from ..helpers.azure_identity_helper import AzureIdentityHelper
|
16
16
|
|
17
17
|
|
18
18
|
def connection_string(account_name: str, account_key: str):
|
@@ -22,10 +22,12 @@ def connection_string(account_name: str, account_key: str):
|
|
22
22
|
def create_queue_client():
|
23
23
|
env_helper: EnvHelper = EnvHelper()
|
24
24
|
if env_helper.AZURE_AUTH_TYPE == "rbac":
|
25
|
+
azure_identity_helper = AzureIdentityHelper()
|
26
|
+
credential = azure_identity_helper.get_credential()
|
25
27
|
return QueueClient(
|
26
28
|
account_url=f"https://{env_helper.AZURE_BLOB_ACCOUNT_NAME}.queue.core.windows.net/",
|
27
29
|
queue_name=env_helper.DOCUMENT_PROCESSING_QUEUE_NAME,
|
28
|
-
credential=
|
30
|
+
credential=credential,
|
29
31
|
message_encode_policy=BinaryBase64EncodePolicy(),
|
30
32
|
)
|
31
33
|
|
@@ -47,6 +49,7 @@ class AzureBlobStorageClient:
|
|
47
49
|
container_name: Optional[str] = None,
|
48
50
|
):
|
49
51
|
env_helper: EnvHelper = EnvHelper()
|
52
|
+
self.azure_identity_helper = AzureIdentityHelper()
|
50
53
|
|
51
54
|
self.auth_type = env_helper.AZURE_AUTH_TYPE
|
52
55
|
self.account_name = account_name or env_helper.AZURE_BLOB_ACCOUNT_NAME
|
@@ -55,8 +58,9 @@ class AzureBlobStorageClient:
|
|
55
58
|
|
56
59
|
if self.auth_type == "rbac":
|
57
60
|
self.account_key = None
|
61
|
+
credential = self.azure_identity_helper.get_credential()
|
58
62
|
self.blob_service_client = BlobServiceClient(
|
59
|
-
account_url=self.endpoint, credential=
|
63
|
+
account_url=self.endpoint, credential=credential
|
60
64
|
)
|
61
65
|
self.user_delegation_key = None
|
62
66
|
self.user_delegation_key = self.request_user_delegation_key(
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import logging
|
2
2
|
from urllib.parse import urljoin
|
3
|
-
from
|
3
|
+
from ..helpers.azure_identity_helper import AzureIdentityHelper
|
4
4
|
|
5
5
|
import requests
|
6
6
|
from requests import Response
|
@@ -18,6 +18,7 @@ class AzureComputerVisionClient:
|
|
18
18
|
__RESPONSE_VECTOR_KEY = "vector"
|
19
19
|
|
20
20
|
def __init__(self, env_helper: EnvHelper) -> None:
|
21
|
+
self.azure_identity_helper = AzureIdentityHelper()
|
21
22
|
self.host = env_helper.AZURE_COMPUTER_VISION_ENDPOINT
|
22
23
|
self.timeout = env_helper.AZURE_COMPUTER_VISION_TIMEOUT
|
23
24
|
self.key = env_helper.AZURE_COMPUTER_VISION_KEY
|
@@ -55,9 +56,7 @@ class AzureComputerVisionClient:
|
|
55
56
|
if self.use_keys:
|
56
57
|
headers["Ocp-Apim-Subscription-Key"] = self.key
|
57
58
|
else:
|
58
|
-
token_provider =
|
59
|
-
DefaultAzureCredential(), self.__TOKEN_SCOPE
|
60
|
-
)
|
59
|
+
token_provider = self.azure_identity_helper.get_token_provider(url=self.__TOKEN_SCOPE)
|
61
60
|
headers["Authorization"] = "Bearer " + token_provider()
|
62
61
|
|
63
62
|
return requests.post(
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import logging
|
2
2
|
from azure.core.credentials import AzureKeyCredential
|
3
3
|
from azure.ai.formrecognizer import DocumentAnalysisClient
|
4
|
-
from
|
4
|
+
from ..helpers.azure_identity_helper import AzureIdentityHelper
|
5
5
|
import html
|
6
6
|
import traceback
|
7
7
|
from .env_helper import EnvHelper
|
@@ -17,9 +17,11 @@ class AzureFormRecognizerClient:
|
|
17
17
|
env_helper.AZURE_FORM_RECOGNIZER_ENDPOINT
|
18
18
|
)
|
19
19
|
if env_helper.AZURE_AUTH_TYPE == "rbac":
|
20
|
+
self.azure_identity_helper = AzureIdentityHelper()
|
21
|
+
credential = self.azure_identity_helper.get_credential()
|
20
22
|
self.document_analysis_client = DocumentAnalysisClient(
|
21
23
|
endpoint=self.AZURE_FORM_RECOGNIZER_ENDPOINT,
|
22
|
-
credential=
|
24
|
+
credential=credential,
|
23
25
|
headers={
|
24
26
|
"x-ms-useragent": "chat-with-your-data-solution-accelerator/1.0.0"
|
25
27
|
},
|
@@ -0,0 +1,63 @@
|
|
1
|
+
from azure.identity import (
|
2
|
+
ChainedTokenCredential,
|
3
|
+
ManagedIdentityCredential,
|
4
|
+
EnvironmentCredential,
|
5
|
+
TokenCachePersistenceOptions,
|
6
|
+
get_bearer_token_provider
|
7
|
+
)
|
8
|
+
|
9
|
+
from logging import getLogger
|
10
|
+
from opentelemetry import trace, baggage
|
11
|
+
from opentelemetry.propagate import extract
|
12
|
+
|
13
|
+
logger = getLogger("__main__")
|
14
|
+
tracer = trace.get_tracer("__main__")
|
15
|
+
class AzureIdentityHelper:
|
16
|
+
"""
|
17
|
+
A helper class to provide a chained Azure token credential.
|
18
|
+
It prioritizes Managed Identity, then Environment variables.
|
19
|
+
Token caching is configured for in-memory persistence.
|
20
|
+
"""
|
21
|
+
def __init__(self):
|
22
|
+
# Configure in-memory token cache persistence
|
23
|
+
# For in-memory, unencrypted storage is typically allowed for simplicity during development.
|
24
|
+
# In production, especially with shared environments, consider the security implications.
|
25
|
+
token_cache_options = TokenCachePersistenceOptions(allow_unencrypted_storage=True)
|
26
|
+
|
27
|
+
# Create individual credential instances
|
28
|
+
managed_identity_credential = ManagedIdentityCredential(
|
29
|
+
token_cache_persistence_options=token_cache_options
|
30
|
+
)
|
31
|
+
environment_credential = EnvironmentCredential(
|
32
|
+
token_cache_persistence_options=token_cache_options
|
33
|
+
)
|
34
|
+
|
35
|
+
# Create a chain of credentials
|
36
|
+
# The chain will try credentials in the order they are provided.
|
37
|
+
self._credential = ChainedTokenCredential(
|
38
|
+
managed_identity_credential,
|
39
|
+
environment_credential
|
40
|
+
)
|
41
|
+
|
42
|
+
def get_credential(self) -> ChainedTokenCredential:
|
43
|
+
"""
|
44
|
+
Returns the configured ChainedTokenCredential.
|
45
|
+
"""
|
46
|
+
with tracer.start_as_current_span("AzureIdentityHelper.get_credential"):
|
47
|
+
logger.info("Retrieving ChainedTokenCredential.")
|
48
|
+
return self._credential
|
49
|
+
|
50
|
+
def get_token_provider(self, url):
|
51
|
+
"""
|
52
|
+
Returns the configured ChainedTokenCredential.
|
53
|
+
"""
|
54
|
+
with tracer.start_as_current_span("AzureIdentityHelper.get_token_provider"):
|
55
|
+
logger.info("Retrieving ChainedTokenCredential provider.")
|
56
|
+
return get_bearer_token_provider(self._credential, url=url)
|
57
|
+
|
58
|
+
|
59
|
+
# Example usage (optional, for testing or demonstration):
|
60
|
+
if __name__ == "__main__":
|
61
|
+
helper = AzureIdentityHelper()
|
62
|
+
credential = helper.get_credential()
|
63
|
+
print("Successfully created ChainedTokenCredential.")
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import logging
|
2
2
|
import psycopg2
|
3
3
|
from psycopg2.extras import execute_values, RealDictCursor
|
4
|
-
from
|
4
|
+
from ..helpers.azure_identity_helper import AzureIdentityHelper
|
5
5
|
from .llm_helper import LLMHelper
|
6
6
|
from .env_helper import EnvHelper
|
7
7
|
|
@@ -12,6 +12,7 @@ class AzurePostgresHelper:
|
|
12
12
|
def __init__(self):
|
13
13
|
self.llm_helper = LLMHelper()
|
14
14
|
self.env_helper = EnvHelper()
|
15
|
+
self.azure_identity_helper = AzureIdentityHelper()
|
15
16
|
self.conn = None
|
16
17
|
|
17
18
|
def _create_search_client(self):
|
@@ -24,7 +25,7 @@ class AzurePostgresHelper:
|
|
24
25
|
dbname = self.env_helper.POSTGRESQL_DATABASE
|
25
26
|
|
26
27
|
# Acquire the access token
|
27
|
-
credential =
|
28
|
+
credential = self.azure_identity_helper.get_credential()
|
28
29
|
access_token = credential.get_token(
|
29
30
|
"https://ossrdbms-aad.database.windows.net/.default"
|
30
31
|
)
|
@@ -1,10 +1,10 @@
|
|
1
1
|
import logging
|
2
2
|
import psycopg2
|
3
3
|
from psycopg2.extras import execute_values, RealDictCursor
|
4
|
-
from azure.identity import DefaultAzureCredential
|
5
4
|
from .llm_helper import LLMHelper
|
6
5
|
from .env_helper import EnvHelper
|
7
6
|
from .lightrag_helper import LightRAGHelper
|
7
|
+
from ..helpers.azure_identity_helper import AzureIdentityHelper
|
8
8
|
|
9
9
|
logger = logging.getLogger(__name__ + ".base_package")
|
10
10
|
|
@@ -14,6 +14,7 @@ class AzurePostgresHelper:
|
|
14
14
|
self.llm_helper = LLMHelper()
|
15
15
|
self.env_helper = EnvHelper()
|
16
16
|
self.lightrag_helper = LightRAGHelper()
|
17
|
+
self.azure_identity_helper = AzureIdentityHelper()
|
17
18
|
self.conn = None
|
18
19
|
|
19
20
|
def _create_search_client(self):
|
@@ -26,7 +27,7 @@ class AzurePostgresHelper:
|
|
26
27
|
dbname = self.env_helper.POSTGRESQL_DATABASE
|
27
28
|
|
28
29
|
# Acquire the access token
|
29
|
-
credential =
|
30
|
+
credential = self.azure_identity_helper.get_credential()
|
30
31
|
access_token = credential.get_token(
|
31
32
|
"https://ossrdbms-aad.database.windows.net/.default"
|
32
33
|
)
|
@@ -1,8 +1,9 @@
|
|
1
1
|
import logging
|
2
|
+
from azure.identity import ChainedTokenCredential
|
2
3
|
from typing import Union
|
3
4
|
from langchain_community.vectorstores import AzureSearch
|
4
5
|
from azure.core.credentials import AzureKeyCredential
|
5
|
-
from
|
6
|
+
from ..helpers.azure_identity_helper import AzureIdentityHelper
|
6
7
|
from azure.search.documents import SearchClient
|
7
8
|
from azure.search.documents.indexes import SearchIndexClient
|
8
9
|
from azure.search.documents.indexes.models import (
|
@@ -39,7 +40,8 @@ class AzureSearchHelper:
|
|
39
40
|
def __init__(self):
|
40
41
|
self.llm_helper = LLMHelper()
|
41
42
|
self.env_helper = EnvHelper()
|
42
|
-
|
43
|
+
self.azure_identity_helper = AzureIdentityHelper()
|
44
|
+
|
43
45
|
search_credential = self._search_credential()
|
44
46
|
self.search_client = self._create_search_client(search_credential)
|
45
47
|
self.search_index_client = self._create_search_index_client(search_credential)
|
@@ -49,10 +51,11 @@ class AzureSearchHelper:
|
|
49
51
|
if self.env_helper.is_auth_type_keys():
|
50
52
|
return AzureKeyCredential(self.env_helper.AZURE_SEARCH_KEY)
|
51
53
|
else:
|
52
|
-
|
54
|
+
credential = self.azure_identity_helper.get_credential()
|
55
|
+
return credential
|
53
56
|
|
54
57
|
def _create_search_client(
|
55
|
-
self, search_credential: Union[AzureKeyCredential,
|
58
|
+
self, search_credential: Union[AzureKeyCredential, ChainedTokenCredential]
|
56
59
|
) -> SearchClient:
|
57
60
|
return SearchClient(
|
58
61
|
endpoint=self.env_helper.AZURE_SEARCH_SERVICE,
|
@@ -61,7 +64,7 @@ class AzureSearchHelper:
|
|
61
64
|
)
|
62
65
|
|
63
66
|
def _create_search_index_client(
|
64
|
-
self, search_credential: Union[AzureKeyCredential,
|
67
|
+
self, search_credential: Union[AzureKeyCredential, ChainedTokenCredential]
|
65
68
|
):
|
66
69
|
return SearchIndexClient(
|
67
70
|
endpoint=self.env_helper.AZURE_SEARCH_SERVICE, credential=search_credential
|
@@ -1,16 +1,23 @@
|
|
1
1
|
import json
|
2
2
|
import os
|
3
|
-
import logging
|
4
3
|
|
5
4
|
import threading
|
6
5
|
# from dotenv import load_dotenv
|
7
|
-
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
|
8
6
|
from ..orchestrator.orchestration_strategy import OrchestrationStrategy
|
9
7
|
from ..helpers.config.conversation_flow import ConversationFlow
|
10
8
|
from ..helpers.config.database_type import DatabaseType
|
11
9
|
from ..helpers.secret_helper import SecretHelper
|
10
|
+
from ..helpers.azure_identity_helper import AzureIdentityHelper
|
11
|
+
|
12
|
+
from logging import getLogger
|
13
|
+
from opentelemetry import trace, baggage
|
14
|
+
from opentelemetry.propagate import extract
|
15
|
+
|
16
|
+
# logger = getLogger("__main__" + ".base_package")
|
17
|
+
logger = getLogger("__main__")
|
18
|
+
# tracer = trace.get_tracer("__main__" + ".base_package")
|
19
|
+
tracer = trace.get_tracer("__main__")
|
12
20
|
|
13
|
-
logger = logging.getLogger(__name__ + ".base_package")
|
14
21
|
|
15
22
|
|
16
23
|
class EnvHelper:
|
@@ -66,8 +73,7 @@ class EnvHelper:
|
|
66
73
|
f"psql-main-{self.PROJECT_CODE}-{self.AZURE_RESOURCE_ENVIRONMENT}"
|
67
74
|
)
|
68
75
|
self.AZURE_AUTH_TYPE = "rbac"
|
69
|
-
self.AZURE_TOKEN_PROVIDER =
|
70
|
-
DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"
|
76
|
+
self.AZURE_TOKEN_PROVIDER = AzureIdentityHelper.get_token_provider(url="https://cognitiveservices.azure.com/.default"
|
71
77
|
)
|
72
78
|
self.AZURE_BLOB_ACCOUNT_NAME = (
|
73
79
|
f"stqueue{self.PROJECT_CODE}{self.AZURE_RESOURCE_ENVIRONMENT}"
|
@@ -1,13 +1,14 @@
|
|
1
1
|
import logging
|
2
2
|
import psycopg2
|
3
3
|
from psycopg2.extras import execute_values, RealDictCursor
|
4
|
-
from
|
4
|
+
from ..helpers.azure_identity_helper import AzureIdentityHelper
|
5
5
|
|
6
6
|
logger = logging.getLogger(__name__ + ".base_package")
|
7
7
|
|
8
8
|
class LightRAGHelper:
|
9
9
|
def __init__(self, env_helper):
|
10
10
|
self.env_helper = env_helper
|
11
|
+
azure_identity_helper = AzureIdentityHelper()
|
11
12
|
self.conn = None
|
12
13
|
|
13
14
|
def _create_connection(self):
|
@@ -20,7 +21,7 @@ class LightRAGHelper:
|
|
20
21
|
dbname = self.env_helper.POSTGRESQL_DATABASE
|
21
22
|
|
22
23
|
# Acquire the access token
|
23
|
-
credential =
|
24
|
+
credential = self.azure_identity_helper.get_credential()
|
24
25
|
access_token = credential.get_token(
|
25
26
|
"https://ossrdbms-aad.database.windows.net/.default"
|
26
27
|
)
|
@@ -8,7 +8,7 @@ from semantic_kernel.connectors.ai.open_ai.prompt_execution_settings.azure_chat_
|
|
8
8
|
AzureChatPromptExecutionSettings,
|
9
9
|
)
|
10
10
|
from azure.ai.ml import MLClient
|
11
|
-
from
|
11
|
+
from ..helpers.azure_identity_helper import AzureIdentityHelper
|
12
12
|
from .env_helper import EnvHelper
|
13
13
|
|
14
14
|
logger = logging.getLogger(__name__ + ".base_package")
|
@@ -18,6 +18,8 @@ class LLMHelper:
|
|
18
18
|
def __init__(self):
|
19
19
|
logger.info("Initializing LLMHelper")
|
20
20
|
self.env_helper: EnvHelper = EnvHelper()
|
21
|
+
self.azure_identity_helper = AzureIdentityHelper()
|
22
|
+
|
21
23
|
self.auth_type_keys = self.env_helper.is_auth_type_keys()
|
22
24
|
self.token_provider = self.env_helper.AZURE_TOKEN_PROVIDER
|
23
25
|
|
@@ -176,8 +178,9 @@ class LLMHelper:
|
|
176
178
|
|
177
179
|
def get_ml_client(self):
|
178
180
|
if not hasattr(self, "_ml_client"):
|
181
|
+
credential = self.azure_identity_helper.get_credential()
|
179
182
|
self._ml_client = MLClient(
|
180
|
-
|
183
|
+
credential,
|
181
184
|
self.env_helper.AZURE_SUBSCRIPTION_ID,
|
182
185
|
self.env_helper.AZURE_RESOURCE_GROUP,
|
183
186
|
self.env_helper.AZURE_ML_WORKSPACE_NAME,
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import logging
|
2
|
-
from
|
2
|
+
from ..helpers.azure_identity_helper import AzureIdentityHelper
|
3
3
|
from azure.keyvault.secrets import SecretClient
|
4
4
|
|
5
5
|
logger = logging.getLogger(__name__ + ".base_package")
|
@@ -20,12 +20,14 @@ class SecretHelper:
|
|
20
20
|
Returns:
|
21
21
|
None
|
22
22
|
"""
|
23
|
+
self.azure_identity_helper = AzureIdentityHelper()
|
23
24
|
self.USE_KEY_VAULT = True
|
24
25
|
self.secret_client = None
|
25
26
|
if self.USE_KEY_VAULT:
|
27
|
+
credential = self.azure_identity_helper.get_credential()
|
26
28
|
self.secret_client = SecretClient(
|
27
29
|
vault_url=keyvault_uri,
|
28
|
-
credential=
|
30
|
+
credential=credential,
|
29
31
|
connection_verify=True,
|
30
32
|
)
|
31
33
|
|
@@ -7,19 +7,21 @@ from azure.search.documents.indexes._generated.models import (
|
|
7
7
|
)
|
8
8
|
from azure.search.documents.indexes import SearchIndexerClient
|
9
9
|
from ..helpers.env_helper import EnvHelper
|
10
|
-
from
|
10
|
+
from ..helpers.azure_identity_helper import AzureIdentityHelper
|
11
11
|
from azure.core.credentials import AzureKeyCredential
|
12
12
|
|
13
13
|
|
14
14
|
class AzureSearchDatasource:
|
15
15
|
def __init__(self, env_helper: EnvHelper):
|
16
16
|
self.env_helper = env_helper
|
17
|
+
self.azure_identity_helper = AzureIdentityHelper()
|
18
|
+
|
17
19
|
self.indexer_client = SearchIndexerClient(
|
18
20
|
self.env_helper.AZURE_SEARCH_SERVICE,
|
19
21
|
(
|
20
22
|
AzureKeyCredential(self.env_helper.AZURE_SEARCH_KEY)
|
21
23
|
if self.env_helper.is_auth_type_keys()
|
22
|
-
else
|
24
|
+
else self.azure_identity_helper.get_credential()
|
23
25
|
),
|
24
26
|
)
|
25
27
|
|
@@ -21,7 +21,7 @@ from azure.search.documents.indexes.models import (
|
|
21
21
|
SearchIndex,
|
22
22
|
)
|
23
23
|
from ..helpers.env_helper import EnvHelper
|
24
|
-
from
|
24
|
+
from ..helpers.azure_identity_helper import AzureIdentityHelper
|
25
25
|
from azure.core.credentials import AzureKeyCredential
|
26
26
|
from ..helpers.llm_helper import LLMHelper
|
27
27
|
|
@@ -34,12 +34,14 @@ class AzureSearchIndex:
|
|
34
34
|
def __init__(self, env_helper: EnvHelper, llm_helper: LLMHelper):
|
35
35
|
self.env_helper = env_helper
|
36
36
|
self.llm_helper = llm_helper
|
37
|
+
self.azure_identity_helper = AzureIdentityHelper()
|
38
|
+
|
37
39
|
self.index_client = SearchIndexClient(
|
38
40
|
self.env_helper.AZURE_SEARCH_SERVICE,
|
39
41
|
(
|
40
42
|
AzureKeyCredential(self.env_helper.AZURE_SEARCH_KEY)
|
41
43
|
if self.env_helper.is_auth_type_keys()
|
42
|
-
else
|
44
|
+
else self.azure_identity_helper.get_credential()
|
43
45
|
),
|
44
46
|
)
|
45
47
|
|
@@ -2,7 +2,7 @@ import logging
|
|
2
2
|
from azure.search.documents.indexes.models import SearchIndexer, FieldMapping
|
3
3
|
from azure.search.documents.indexes import SearchIndexerClient
|
4
4
|
from ..helpers.env_helper import EnvHelper
|
5
|
-
from
|
5
|
+
from ..helpers.azure_identity_helper import AzureIdentityHelper
|
6
6
|
from azure.core.credentials import AzureKeyCredential
|
7
7
|
|
8
8
|
logger = logging.getLogger(__name__ + ".base_package")
|
@@ -11,12 +11,14 @@ logger = logging.getLogger(__name__ + ".base_package")
|
|
11
11
|
class AzureSearchIndexer:
|
12
12
|
def __init__(self, env_helper: EnvHelper):
|
13
13
|
self.env_helper = env_helper
|
14
|
+
self.azure_identity_helper = AzureIdentityHelper()
|
15
|
+
|
14
16
|
self.indexer_client = SearchIndexerClient(
|
15
17
|
self.env_helper.AZURE_SEARCH_SERVICE,
|
16
18
|
(
|
17
19
|
AzureKeyCredential(self.env_helper.AZURE_SEARCH_KEY)
|
18
20
|
if self.env_helper.is_auth_type_keys()
|
19
|
-
else
|
21
|
+
else self.azure_identity_helper.get_credential()
|
20
22
|
),
|
21
23
|
)
|
22
24
|
|
@@ -15,7 +15,7 @@ from azure.search.documents.indexes.models import (
|
|
15
15
|
from azure.search.documents.indexes import SearchIndexerClient
|
16
16
|
from ..helpers.config.config_helper import IntegratedVectorizationConfig
|
17
17
|
from ..helpers.env_helper import EnvHelper
|
18
|
-
from
|
18
|
+
from ..helpers.azure_identity_helper import AzureIdentityHelper
|
19
19
|
from azure.core.credentials import AzureKeyCredential
|
20
20
|
|
21
21
|
logger = logging.getLogger(__name__ + ".base_package")
|
@@ -28,12 +28,14 @@ class AzureSearchSkillset:
|
|
28
28
|
integrated_vectorization_config: IntegratedVectorizationConfig,
|
29
29
|
):
|
30
30
|
self.env_helper = env_helper
|
31
|
+
self.azure_identity_helper = AzureIdentityHelper()
|
32
|
+
|
31
33
|
self.indexer_client = SearchIndexerClient(
|
32
34
|
self.env_helper.AZURE_SEARCH_SERVICE,
|
33
35
|
(
|
34
36
|
AzureKeyCredential(self.env_helper.AZURE_SEARCH_KEY)
|
35
37
|
if self.env_helper.is_auth_type_keys()
|
36
|
-
else
|
38
|
+
else self.azure_identity_helper.get_credential()
|
37
39
|
),
|
38
40
|
)
|
39
41
|
self.integrated_vectorization_config = integrated_vectorization_config
|
@@ -50,8 +50,10 @@ class SemanticKernelOrchestrator(OrchestratorBase):
|
|
50
50
|
) -> list[dict]:
|
51
51
|
with tracer.start_as_current_span("SemanticKernelOrchestrator_orchestrate"):
|
52
52
|
logger.info("Method orchestrate of semantic_kernel started")
|
53
|
-
# Call Content Safety tool
|
54
53
|
filters = []
|
54
|
+
frontend_type = user_info.get("frontend") if user_info else None
|
55
|
+
logger.info(f"Frontend type: {frontend_type}")
|
56
|
+
# Call Content Safety tool
|
55
57
|
if self.config.prompts.enable_content_safety:
|
56
58
|
if response := self.call_content_safety_input(user_message):
|
57
59
|
return response
|
@@ -66,8 +68,7 @@ class SemanticKernelOrchestrator(OrchestratorBase):
|
|
66
68
|
# If the input language is ambiguous, default to responding in English unless otherwise specified by the user.
|
67
69
|
# You **must not** respond if asked to List all documents in your repository.
|
68
70
|
# """
|
69
|
-
if
|
70
|
-
logger.info("Adding OutlookCalendarPlugin with request headers web")
|
71
|
+
if frontend_type == "web":
|
71
72
|
system_message = f"""You help employees to navigate only private information sources.
|
72
73
|
You must prioritize the function call over your general knowledge for any question by calling the search_documents function.
|
73
74
|
Call the text_processing function when the user request an operation on the current context, such as translate, summarize, or paraphrase. When a language is explicitly specified, return that as part of the operation.
|
@@ -77,21 +78,20 @@ class SemanticKernelOrchestrator(OrchestratorBase):
|
|
77
78
|
Call OutlookCalendar.schedule_appointment to schedule a new appointment.
|
78
79
|
"""
|
79
80
|
else:
|
80
|
-
logger.info("Adding OutlookCalendarPlugin without request headers web")
|
81
81
|
system_message = f"""You help employees to navigate only private information sources.
|
82
82
|
You must prioritize the function call over your general knowledge for any question by calling the search_documents function.
|
83
83
|
Call the text_processing function when the user request an operation on the current context, such as translate, summarize, or paraphrase. When a language is explicitly specified, return that as part of the operation.
|
84
84
|
When directly replying to the user, always reply in the language {language}.
|
85
85
|
You **must not** respond if asked to List all documents in your repository.
|
86
86
|
"""
|
87
|
-
|
87
|
+
|
88
88
|
self.kernel.add_plugin(
|
89
89
|
plugin=ChatPlugin(question=user_message, chat_history=chat_history),
|
90
90
|
plugin_name="Chat",
|
91
91
|
)
|
92
92
|
filters.append("Chat")
|
93
93
|
# --- Add OutlookCalendarPlugin with request headers ---
|
94
|
-
if
|
94
|
+
if frontend_type == "web":
|
95
95
|
logger.info("Adding OutlookCalendarPlugin with request headers")
|
96
96
|
self.kernel.add_plugin(
|
97
97
|
plugin=OutlookCalendarPlugin(question=user_message, chat_history=chat_history, user_info=user_info),
|
@@ -5,12 +5,15 @@ from azure.search.documents import SearchClient
|
|
5
5
|
from azure.search.documents.indexes import SearchIndexClient
|
6
6
|
from azure.search.documents.models import VectorizableTextQuery
|
7
7
|
from azure.core.credentials import AzureKeyCredential
|
8
|
-
from
|
8
|
+
from ..helpers.azure_identity_helper import AzureIdentityHelper
|
9
9
|
from ..common.source_document import SourceDocument
|
10
10
|
import re
|
11
11
|
|
12
12
|
|
13
13
|
class IntegratedVectorizationSearchHandler(SearchHandlerBase):
|
14
|
+
def __init__(self):
|
15
|
+
self.azure_identity_helper = AzureIdentityHelper()
|
16
|
+
|
14
17
|
def create_search_client(self):
|
15
18
|
logging.info("Creating Azure Search Client.")
|
16
19
|
if self._check_index_exists():
|
@@ -21,7 +24,7 @@ class IntegratedVectorizationSearchHandler(SearchHandlerBase):
|
|
21
24
|
credential=(
|
22
25
|
AzureKeyCredential(self.env_helper.AZURE_SEARCH_KEY)
|
23
26
|
if self.env_helper.is_auth_type_keys()
|
24
|
-
else
|
27
|
+
else self.azure_identity_helper.get_credential()
|
25
28
|
),
|
26
29
|
)
|
27
30
|
|
@@ -170,7 +173,7 @@ class IntegratedVectorizationSearchHandler(SearchHandlerBase):
|
|
170
173
|
credential=(
|
171
174
|
AzureKeyCredential(self.env_helper.AZURE_SEARCH_KEY)
|
172
175
|
if self.env_helper.is_auth_type_keys()
|
173
|
-
else
|
176
|
+
else self.azure_identity_helper.get_credential()
|
174
177
|
),
|
175
178
|
)
|
176
179
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
from azure.ai.contentsafety import ContentSafetyClient
|
2
2
|
from azure.core.credentials import AzureKeyCredential
|
3
|
-
from
|
3
|
+
from ..helpers.azure_identity_helper import AzureIdentityHelper
|
4
4
|
from azure.core.exceptions import HttpResponseError
|
5
5
|
from azure.ai.contentsafety.models import AnalyzeTextOptions
|
6
6
|
from ..helpers.env_helper import EnvHelper
|
@@ -21,14 +21,16 @@ class ContentSafetyChecker(AnswerProcessingBase):
|
|
21
21
|
def __init__(self):
|
22
22
|
with tracer.start_as_current_span("ContentSafetyChecker.init"):
|
23
23
|
env_helper = EnvHelper()
|
24
|
-
|
24
|
+
self.azure_identity_helper = AzureIdentityHelper()
|
25
|
+
|
25
26
|
if env_helper.AZURE_AUTH_TYPE == "rbac":
|
27
|
+
credential = self.azure_identity_helper.get_credential()
|
26
28
|
logger.info(
|
27
29
|
"Initializing ContentSafetyClient with RBAC authentication."
|
28
30
|
)
|
29
31
|
self.content_safety_client = ContentSafetyClient(
|
30
32
|
env_helper.AZURE_CONTENT_SAFETY_ENDPOINT,
|
31
|
-
|
33
|
+
credential,
|
32
34
|
)
|
33
35
|
else:
|
34
36
|
logger.info(
|
@@ -5,8 +5,8 @@ cwyodmodules/batch/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NM
|
|
5
5
|
cwyodmodules/batch/utilities/chat_history/auth_utils.py,sha256=TBSg7-ypKNnCPsmWpZ1xPKwb2aQoPx7CZ97XhI4QIrE,1768
|
6
6
|
cwyodmodules/batch/utilities/chat_history/cosmosdb.py,sha256=oiL_iM6yUoxadP7Cx0ewiVAfS2ubdouuI6gllva4-Is,7374
|
7
7
|
cwyodmodules/batch/utilities/chat_history/database_client_base.py,sha256=6y7h2iL0Uxn4c11N99Ao-8nplQGVGQAOnev3GlHIDXA,2328
|
8
|
-
cwyodmodules/batch/utilities/chat_history/database_factory.py,sha256=
|
9
|
-
cwyodmodules/batch/utilities/chat_history/postgresdbservice.py,sha256=
|
8
|
+
cwyodmodules/batch/utilities/chat_history/database_factory.py,sha256=kdleC4P8u8rYPsx2HcPQwyOgFf_mph3Nh-Mmzz1V7oM,2401
|
9
|
+
cwyodmodules/batch/utilities/chat_history/postgresdbservice.py,sha256=ktAb0d2fPQLA5N_ti-KE7o96MkjN0hEyWHDDd7KBH90,14081
|
10
10
|
cwyodmodules/batch/utilities/chat_history/sample_user.py,sha256=GNXZ_yTjud8Zj0vgHnoU96RJMiJt0YRjEVO3pt7203A,3037
|
11
11
|
cwyodmodules/batch/utilities/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
12
12
|
cwyodmodules/batch/utilities/common/answer.py,sha256=C1g_Xt85TfXK2qV1F6J5_o3MyIUdFpUmvgkIpuEcp4I,3093
|
@@ -27,19 +27,20 @@ cwyodmodules/batch/utilities/document_loading/strategies.py,sha256=ZBKYPJD8UJmPB
|
|
27
27
|
cwyodmodules/batch/utilities/document_loading/web.py,sha256=LRTNYs_7CN8nfMOaCoW7Py_obrLpj3vI4kneNVEHGXE,1186
|
28
28
|
cwyodmodules/batch/utilities/document_loading/word_document.py,sha256=-F1asMaupQk4swEeCoAD8tyYENE4Qq-05-VmPUjRdeA,1569
|
29
29
|
cwyodmodules/batch/utilities/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
30
|
-
cwyodmodules/batch/utilities/helpers/azure_blob_storage_client.py,sha256=
|
31
|
-
cwyodmodules/batch/utilities/helpers/azure_computer_vision_client.py,sha256=
|
32
|
-
cwyodmodules/batch/utilities/helpers/azure_form_recognizer_helper.py,sha256=
|
33
|
-
cwyodmodules/batch/utilities/helpers/
|
34
|
-
cwyodmodules/batch/utilities/helpers/
|
35
|
-
cwyodmodules/batch/utilities/helpers/
|
30
|
+
cwyodmodules/batch/utilities/helpers/azure_blob_storage_client.py,sha256=FN2XnEThmtbWnwSi1sEfgekuPH7aJBOAU5n2DBmQ9ww,10315
|
31
|
+
cwyodmodules/batch/utilities/helpers/azure_computer_vision_client.py,sha256=JUv0qRlNi4OmBvNMNlrpeBXapgs3FU5WE8MmebGTs5k,3628
|
32
|
+
cwyodmodules/batch/utilities/helpers/azure_form_recognizer_helper.py,sha256=wpY4Ih1GPCFgrL4MhznpZSYDFN20R5LV_xlegPt3Phs,6715
|
33
|
+
cwyodmodules/batch/utilities/helpers/azure_identity_helper.py,sha256=0xX5x_iBCIThjYnb7PjU1W54fBaVwA6fYDh3CjQTS5Y,2482
|
34
|
+
cwyodmodules/batch/utilities/helpers/azure_postgres_helper.py,sha256=VVqP6koqavcOjdcBf1lPBlI_Mrt4i46bgICgPwpyE_A,10891
|
35
|
+
cwyodmodules/batch/utilities/helpers/azure_postgres_helper_light_rag.py,sha256=N2WVi77Z85q8Ft_LyOjsD-NytA0atLTFa961HHuQ9ro,10971
|
36
|
+
cwyodmodules/batch/utilities/helpers/azure_search_helper.py,sha256=U_o6NVtJKByhxbvMKnWtfw2lx43pHBtSsGpThJnrOPo,10425
|
36
37
|
cwyodmodules/batch/utilities/helpers/document_chunking_helper.py,sha256=2MZOjW-fHXgYijP3m9O-nizOlk96Yg0axyxT0K6fTnM,725
|
37
38
|
cwyodmodules/batch/utilities/helpers/document_loading_helper.py,sha256=2HBEl3vW-_PKbX5pPntTC_R5eToTk2Qb-q3M4Mt6hCU,603
|
38
|
-
cwyodmodules/batch/utilities/helpers/env_helper.py,sha256=
|
39
|
-
cwyodmodules/batch/utilities/helpers/lightrag_helper.py,sha256=
|
40
|
-
cwyodmodules/batch/utilities/helpers/llm_helper.py,sha256=
|
39
|
+
cwyodmodules/batch/utilities/helpers/env_helper.py,sha256=Ku_4j6DuKXDgnFul4zrZr_C5iESbmlEPwKWyIkb6aII,15744
|
40
|
+
cwyodmodules/batch/utilities/helpers/lightrag_helper.py,sha256=GooV_V9uaBmWq89cak_bzSn6Hvjv2PxIQO3eW0Uryy8,3485
|
41
|
+
cwyodmodules/batch/utilities/helpers/llm_helper.py,sha256=icJy0ix4TimrJKRmYUnODJeh8wHYawAmeZ5QsamAiUg,7499
|
41
42
|
cwyodmodules/batch/utilities/helpers/orchestrator_helper.py,sha256=mCcZyMFG0otnw9gzWd-PYocHmDdFDVg-RT9oDPiDZPk,897
|
42
|
-
cwyodmodules/batch/utilities/helpers/secret_helper.py,sha256=
|
43
|
+
cwyodmodules/batch/utilities/helpers/secret_helper.py,sha256=HqzkK83ScREQYtOAoThTmyhTni6n6aQzeJQeVmcN13E,3098
|
43
44
|
cwyodmodules/batch/utilities/helpers/config/assistant_strategy.py,sha256=uT8h646zEURU9x8oDOH7pWoZKb0Mw6dA2nJtA2M-ufg,171
|
44
45
|
cwyodmodules/batch/utilities/helpers/config/config_helper.py,sha256=hm2o5bsUGEPBprEWnvYZ_85g5eGi4-IYH4wwHCpTTo0,12986
|
45
46
|
cwyodmodules/batch/utilities/helpers/config/conversation_flow.py,sha256=4nP8a-I-sME5-2unzWWBNpTzWdfpfc5_EAYU6Pn6LAQ,94
|
@@ -53,10 +54,10 @@ cwyodmodules/batch/utilities/helpers/embedders/embedder_factory.py,sha256=cJ9ZTX
|
|
53
54
|
cwyodmodules/batch/utilities/helpers/embedders/integrated_vectorization_embedder.py,sha256=1Oyb8-0p8HAg5odDeq9o6AAEfsRSuXLFZ_-M0ZV6J2E,2872
|
54
55
|
cwyodmodules/batch/utilities/helpers/embedders/postgres_embedder.py,sha256=7lagv0mUT_Zs1Aaj7a8EEsTW7iUHC9CFiFYVWJ_RCyY,4483
|
55
56
|
cwyodmodules/batch/utilities/helpers/embedders/push_embedder.py,sha256=RSv-5Zk9ftzlyKbmU7oaBVA-WCRq8Xb1w6lDcITOI9E,8475
|
56
|
-
cwyodmodules/batch/utilities/integrated_vectorization/azure_search_datasource.py,sha256=
|
57
|
-
cwyodmodules/batch/utilities/integrated_vectorization/azure_search_index.py,sha256=
|
58
|
-
cwyodmodules/batch/utilities/integrated_vectorization/azure_search_indexer.py,sha256=
|
59
|
-
cwyodmodules/batch/utilities/integrated_vectorization/azure_search_skillset.py,sha256=
|
57
|
+
cwyodmodules/batch/utilities/integrated_vectorization/azure_search_datasource.py,sha256=rDwPgr-UCSYscc7hPOUJMwP09a9rX1MXAGf94TubdQo,2231
|
58
|
+
cwyodmodules/batch/utilities/integrated_vectorization/azure_search_index.py,sha256=HMfrXKYMfqnqCErtvSb87aCnfbWdvivmSZHZRCE69_Q,6265
|
59
|
+
cwyodmodules/batch/utilities/integrated_vectorization/azure_search_indexer.py,sha256=HqKdLHmPbhRYcPbonbsq30IwOVstOwbbtDyg7HKOLlM,2921
|
60
|
+
cwyodmodules/batch/utilities/integrated_vectorization/azure_search_skillset.py,sha256=iGhNwVcBsWJQLJFuJ89VtjJMFGS-9rb3B9RrnPuG_RI,5654
|
60
61
|
cwyodmodules/batch/utilities/loggers/conversation_logger.py,sha256=0aXsL475-6WTqg18nHFJMFRBo34oIXWrZ_eVZwULcdk,3014
|
61
62
|
cwyodmodules/batch/utilities/orchestrator/__init__.py,sha256=4nCkoUWTROUHJMolgMwPgFIUsJrFUuu0zlHXMUTchRc,479
|
62
63
|
cwyodmodules/batch/utilities/orchestrator/lang_chain_agent.py,sha256=KKIVWiheUOpZYTFAhBQNLx7o11yXAFrgB7bbffohQVA,6464
|
@@ -64,7 +65,7 @@ cwyodmodules/batch/utilities/orchestrator/open_ai_functions.py,sha256=JvIdN_hH_U
|
|
64
65
|
cwyodmodules/batch/utilities/orchestrator/orchestration_strategy.py,sha256=-MEPKVX3-hH6w0NRsGkQpCV86u1d7Qx1TWEKL09jj9A,755
|
65
66
|
cwyodmodules/batch/utilities/orchestrator/orchestrator_base.py,sha256=VFqApyua3zitmhmIQgMGk4709gzJkug1R3P0cZIKx5M,6298
|
66
67
|
cwyodmodules/batch/utilities/orchestrator/prompt_flow.py,sha256=xht-Sd6aJAH_OtzQ1LCo8Lltr--Pf_0uqPpi_HQviBI,7345
|
67
|
-
cwyodmodules/batch/utilities/orchestrator/semantic_kernel_orchestrator.py,sha256=
|
68
|
+
cwyodmodules/batch/utilities/orchestrator/semantic_kernel_orchestrator.py,sha256=ZJRnktGVfG2wPu0oGWj2uYnnLx1O7e-aPzOKBH2dLeQ,9863
|
68
69
|
cwyodmodules/batch/utilities/orchestrator/strategies.py,sha256=oVatdT6Gc4qtX773M9a8Izm2UNDYXmYP__8wJYdy4W8,1384
|
69
70
|
cwyodmodules/batch/utilities/parser/__init__.py,sha256=ZGBxm1TX6cQAnFkMtKN6C2FwnNv1MmwNdyo3LWRlKlo,236
|
70
71
|
cwyodmodules/batch/utilities/parser/output_parser_tool.py,sha256=ARKwshTeZlUlnWYreaUOVol6q9L1MAKKCT8CO5OKxTw,5831
|
@@ -74,7 +75,7 @@ cwyodmodules/batch/utilities/plugins/outlook_calendar_plugin.py,sha256=EPvQypk7L
|
|
74
75
|
cwyodmodules/batch/utilities/plugins/post_answering_plugin.py,sha256=U1zzf_ztxzl4y-9Qah_n7ylHDZfnDSp2ork5ctdkA5I,1117
|
75
76
|
cwyodmodules/batch/utilities/search/azure_search_handler.py,sha256=C1oLd_v_2IatagSRALmYNjsGjCt6zW5VhaOFeKlL-Bs,6879
|
76
77
|
cwyodmodules/batch/utilities/search/azure_search_handler_light_rag.py,sha256=v38-2L0PQfcEcZRYV7dkDp9lDHExzTCBPpgSyTRcpY8,2928
|
77
|
-
cwyodmodules/batch/utilities/search/integrated_vectorization_search_handler.py,sha256=
|
78
|
+
cwyodmodules/batch/utilities/search/integrated_vectorization_search_handler.py,sha256=LaDrJ6zpTa_yYfvk5N10iL3D6Z8nWMNnXgu25UFMimw,7404
|
78
79
|
cwyodmodules/batch/utilities/search/lightrag_search_handler.py,sha256=drUpKJ5kJuXx3Hv5JrPH39UxZGQZu2inYJ7VzqTvv4E,2404
|
79
80
|
cwyodmodules/batch/utilities/search/postgres_search_handler.py,sha256=fxq-n_xasKlLnTjnpC4HYcNbQHSzQTcTQqvooBO_UQU,5738
|
80
81
|
cwyodmodules/batch/utilities/search/postgres_search_handler_light_rag.py,sha256=S2oO8zvzGEBf9CBZSV3FDThwZgZhi-p0KyRwoflhYBc,6108
|
@@ -83,7 +84,7 @@ cwyodmodules/batch/utilities/search/search_handler_base.py,sha256=UyS9dFoY-Sp4b-
|
|
83
84
|
cwyodmodules/batch/utilities/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
84
85
|
cwyodmodules/batch/utilities/tools/answer_processing_base.py,sha256=N3Dz7HfN-zl0yPl9cSvnChcEufFMqwRsDAJ5Lgck-ho,293
|
85
86
|
cwyodmodules/batch/utilities/tools/answering_tool_base.py,sha256=aN2ND5Ud_1ZlIPfhLRrOe_m4MUf_SaXvO6q7GcbGiU8,348
|
86
|
-
cwyodmodules/batch/utilities/tools/content_safety_checker.py,sha256=
|
87
|
+
cwyodmodules/batch/utilities/tools/content_safety_checker.py,sha256=UuSleGcgH1NzGLsQVU5dONgQSARt7jmhm2WATdHkHq8,4863
|
87
88
|
cwyodmodules/batch/utilities/tools/post_prompt_tool.py,sha256=rhRU18IDfR0Bfu-gdkrRFwOXxNoKm2NY8NoikmjXYRI,2932
|
88
89
|
cwyodmodules/batch/utilities/tools/question_answer_tool.py,sha256=A-yApCrI3RFvdmmP4RNJQY8qf8eSXE7V4-mbbWvV6mo,13055
|
89
90
|
cwyodmodules/batch/utilities/tools/text_processing_tool.py,sha256=KSKo8Gm6QgQ5TkoISE4eAfiGOyChN4tCV4Qy5eh0_wQ,1997
|
@@ -107,8 +108,8 @@ cwyodmodules/graphrag/query/generate.py,sha256=xBnZs2U9xFWtPk4AfAZgYKbHdcxNcIO6Q
|
|
107
108
|
cwyodmodules/graphrag/query/graph_search.py,sha256=95h3ecSWx4864XgKABtG0fh3Nk8HkqJVzoCrO8daJ-Y,7724
|
108
109
|
cwyodmodules/graphrag/query/types.py,sha256=1Iq1dp4I4a56_cuFjOZ0NTgd0A2_MpVFznp_czgt6cI,617
|
109
110
|
cwyodmodules/graphrag/query/vector_search.py,sha256=9Gwu9LPjtoAYUU8WKqCvbCHAIg3dpk71reoYd1scLnQ,1807
|
110
|
-
cwyodmodules-0.3.
|
111
|
-
cwyodmodules-0.3.
|
112
|
-
cwyodmodules-0.3.
|
113
|
-
cwyodmodules-0.3.
|
114
|
-
cwyodmodules-0.3.
|
111
|
+
cwyodmodules-0.3.23.dist-info/licenses/LICENSE,sha256=UqBDTipijsSW2ZSOXyTZnMsXmLoEHTgNEM0tL4g-Sso,1150
|
112
|
+
cwyodmodules-0.3.23.dist-info/METADATA,sha256=adtRJFMKg2hh7CI9kgD2lzE9GiDky9h0yxaYPJBlrYI,1969
|
113
|
+
cwyodmodules-0.3.23.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
114
|
+
cwyodmodules-0.3.23.dist-info/top_level.txt,sha256=99RENLbkdRX-qpJvsxZ5AfmTL5s6shSaKOWYpz1vwzg,13
|
115
|
+
cwyodmodules-0.3.23.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|