dhisana 0.0.1.dev228__tar.gz → 0.0.1.dev230__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.
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/PKG-INFO +1 -1
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/setup.py +1 -1
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/compose_search_query.py +2 -2
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/dataframe_tools.py +2 -2
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/enrich_lead_information.py +3 -3
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/generate_email.py +3 -2
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/generate_email_response.py +5 -4
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/generate_linkedin_connect_message.py +3 -2
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/generate_linkedin_response_message.py +3 -2
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/generate_structured_output_internal.py +3 -3
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/openai_assistant_and_file_utils.py +3 -3
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/openai_helpers.py +2 -2
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/research_lead.py +2 -2
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/serpapi_search_tools.py +2 -2
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/test_connect.py +1 -1
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/trasform_json.py +1 -1
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/workflow/test.py +1 -1
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana.egg-info/PKG-INFO +1 -1
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/README.md +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/pyproject.toml +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/setup.cfg +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/__init__.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/cli/__init__.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/cli/cli.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/cli/datasets.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/cli/models.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/cli/predictions.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/schemas/__init__.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/schemas/common.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/schemas/sales.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/ui/__init__.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/ui/components.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/__init__.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/add_mapping.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/agent_tools.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/apollo_tools.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/assistant_tool_tag.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/built_with_api_tools.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/cache_output_tools.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/cache_output_tools_local.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/check_email_validity_tools.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/check_for_intent_signal.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/check_linkedin_url_validity.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/clay_tools.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/clean_properties.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/company_utils.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/compose_salesnav_query.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/compose_three_step_workflow.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/composite_tools.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/domain_parser.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/email_body_utils.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/email_parse_helpers.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/email_provider.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/extract_email_content_for_llm.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/fetch_openai_config.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/field_validators.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/g2_tools.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/generate_content.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/generate_flow.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/generate_leads_salesnav.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/google_custom_search.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/google_oauth_tools.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/google_workspace_tools.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/hubspot_clearbit.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/hubspot_crm_tools.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/instantly_tools.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/linkedin_crawler.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/lusha_tools.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/mailgun_tools.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/microsoft365_tools.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/openapi_spec_to_tools.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/openapi_tool/__init__.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/openapi_tool/api_models.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/openapi_tool/convert_openai_spec_to_tool.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/openapi_tool/openapi_tool.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/parse_linkedin_messages_txt.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/profile.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/proxy_curl_tools.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/proxycurl_search_leads.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/python_function_to_tools.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/sales_navigator_crawler.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/salesforce_crm_tools.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/search_router.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/search_router_jobs.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/sendgrid_tools.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/serarch_router_local_business.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/serpapi_additional_tools.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/serpapi_google_jobs.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/serpapi_google_search.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/serpapi_local_business_search.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/serperdev_google_jobs.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/serperdev_local_business.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/serperdev_search.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/smtp_email_tools.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/web_download_parse_tools.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/workflow_code_model.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/zoominfo_tools.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/workflow/__init__.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/workflow/agent.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/workflow/flow.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/workflow/task.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana.egg-info/SOURCES.txt +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana.egg-info/dependency_links.txt +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana.egg-info/entry_points.txt +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana.egg-info/requires.txt +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana.egg-info/top_level.txt +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/tests/test_agent_tools.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/tests/test_apollo_company_search.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/tests/test_apollo_lead_search.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/tests/test_connectivity.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/tests/test_email_body_utils.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/tests/test_google_document.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/tests/test_hubspot_call_logs.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/tests/test_linkedin_serper.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/tests/test_mcp_connectivity.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/tests/test_proxycurl_get_company_search_id.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/tests/test_proxycurl_job_count.py +0 -0
- {dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/tests/test_structured_output_with_mcp.py +0 -0
|
@@ -472,7 +472,7 @@ Output must be valid JSON, e.g.:
|
|
|
472
472
|
prompt=prompt,
|
|
473
473
|
response_format=TechnologyUsedCheck,
|
|
474
474
|
effort="high",
|
|
475
|
-
model="gpt-
|
|
475
|
+
model="gpt-5.1-chat",
|
|
476
476
|
tool_config=tool_config
|
|
477
477
|
)
|
|
478
478
|
|
|
@@ -534,7 +534,7 @@ Output must be valid JSON, e.g.:
|
|
|
534
534
|
prompt=prompt,
|
|
535
535
|
response_format=TechnologyAndRoleCheck,
|
|
536
536
|
effort="high",
|
|
537
|
-
model="gpt-
|
|
537
|
+
model="gpt-5.1-chat",
|
|
538
538
|
tool_config=tool_config
|
|
539
539
|
)
|
|
540
540
|
|
|
@@ -33,13 +33,13 @@ class PandasQuery(BaseModel):
|
|
|
33
33
|
|
|
34
34
|
|
|
35
35
|
@assistant_tool
|
|
36
|
-
async def get_structured_output(message: str, response_type, model: str = "gpt-
|
|
36
|
+
async def get_structured_output(message: str, response_type, model: str = "gpt-5.1-chat"):
|
|
37
37
|
"""
|
|
38
38
|
Asynchronously retrieves structured output from the OpenAI API based on the input message.
|
|
39
39
|
|
|
40
40
|
:param message: The input message to be processed by the OpenAI API.
|
|
41
41
|
:param response_type: The expected format of the response (e.g., JSON).
|
|
42
|
-
:param model: The model to be used for processing the input message. Defaults to "gpt-
|
|
42
|
+
:param model: The model to be used for processing the input message. Defaults to "gpt-5.1-chat".
|
|
43
43
|
:return: A tuple containing the parsed response and a status string ('SUCCESS' or 'FAIL').
|
|
44
44
|
"""
|
|
45
45
|
try:
|
|
@@ -162,7 +162,7 @@ async def get_clean_lead_info_with_llm(lead_info_str: str, tool_config: Optional
|
|
|
162
162
|
lead_info, status = await get_structured_output_internal(
|
|
163
163
|
prompt,
|
|
164
164
|
BasicLeadInformation,
|
|
165
|
-
model="gpt-
|
|
165
|
+
model="gpt-5.1-chat",
|
|
166
166
|
tool_config=tool_config
|
|
167
167
|
)
|
|
168
168
|
if status == "ERROR":
|
|
@@ -493,7 +493,7 @@ async def get_user_linkedin_url_from_github_profile(
|
|
|
493
493
|
response, status = await get_structured_output_internal(
|
|
494
494
|
instructions,
|
|
495
495
|
UserInfoFromGithubProfileId,
|
|
496
|
-
model="gpt-
|
|
496
|
+
model="gpt-5.1-chat",
|
|
497
497
|
use_web_search=True,
|
|
498
498
|
tool_config=tool_config
|
|
499
499
|
)
|
|
@@ -903,7 +903,7 @@ async def get_company_domain_from_llm_web_search(
|
|
|
903
903
|
response, status = await get_structured_output_internal(
|
|
904
904
|
instructions,
|
|
905
905
|
CompanyInfoFromName,
|
|
906
|
-
model="gpt-
|
|
906
|
+
model="gpt-5.1-chat",
|
|
907
907
|
use_web_search=True,
|
|
908
908
|
tool_config=tool_config
|
|
909
909
|
)
|
|
@@ -136,6 +136,7 @@ async def generate_personalized_email_copy(
|
|
|
136
136
|
- Make sure the signature in body has the sender_first_name is correct and in the format user has specified.
|
|
137
137
|
- Do Not Make up information. use the information provided in the context and instructions only.
|
|
138
138
|
- Make sure the body text is well-formatted and that newline and carriage-return characters are correctly present and preserved in the message body.
|
|
139
|
+
- Do Not use em dash in the generated output.
|
|
139
140
|
|
|
140
141
|
"""
|
|
141
142
|
|
|
@@ -152,7 +153,7 @@ async def generate_personalized_email_copy(
|
|
|
152
153
|
prompt=initial_prompt,
|
|
153
154
|
response_format=EmailCopy,
|
|
154
155
|
vector_store_id=vector_store_id,
|
|
155
|
-
model="gpt-
|
|
156
|
+
model="gpt-5.1-chat",
|
|
156
157
|
tool_config=tool_config,
|
|
157
158
|
use_cache=email_context.message_instructions.use_cache if email_context.message_instructions else True
|
|
158
159
|
)
|
|
@@ -161,7 +162,7 @@ async def generate_personalized_email_copy(
|
|
|
161
162
|
initial_response, initial_status = await get_structured_output_internal(
|
|
162
163
|
prompt=initial_prompt,
|
|
163
164
|
response_format=EmailCopy,
|
|
164
|
-
model="gpt-
|
|
165
|
+
model="gpt-5.1-chat",
|
|
165
166
|
tool_config=tool_config,
|
|
166
167
|
use_cache=email_context.message_instructions.use_cache if email_context.message_instructions else True
|
|
167
168
|
)
|
|
@@ -194,7 +194,7 @@ async def get_inbound_email_triage_action(
|
|
|
194
194
|
triage_only, status = await get_structured_output_with_assistant_and_vector_store(
|
|
195
195
|
prompt=triage_prompt,
|
|
196
196
|
response_format=InboundEmailTriageResponse,
|
|
197
|
-
model="gpt-
|
|
197
|
+
model="gpt-5.1-chat",
|
|
198
198
|
vector_store_id=cleaned_context.external_known_data.external_openai_vector_store_id,
|
|
199
199
|
tool_config=tool_config,
|
|
200
200
|
use_cache=cleaned_context.message_instructions.use_cache if cleaned_context.message_instructions else True
|
|
@@ -203,7 +203,7 @@ async def get_inbound_email_triage_action(
|
|
|
203
203
|
triage_only, status = await get_structured_output_internal(
|
|
204
204
|
prompt=triage_prompt,
|
|
205
205
|
response_format=InboundEmailTriageResponse,
|
|
206
|
-
model="gpt-
|
|
206
|
+
model="gpt-5.1-chat",
|
|
207
207
|
tool_config=tool_config,
|
|
208
208
|
use_cache=cleaned_context.message_instructions.use_cache if cleaned_context.message_instructions else True
|
|
209
209
|
)
|
|
@@ -353,6 +353,7 @@ async def generate_inbound_email_response_copy(
|
|
|
353
353
|
DO NOT share any link to internal or made up document. You can attach or send any document.
|
|
354
354
|
If the user is asking for any additional document END_CONVERSATION and let Account executive handle it.
|
|
355
355
|
- Make sure the body text is well-formatted and that newline and carriage-return characters are correctly present and preserved in the message body.
|
|
356
|
+
- Do Not use em dash in the generated output.
|
|
356
357
|
|
|
357
358
|
Required JSON output
|
|
358
359
|
--------------------
|
|
@@ -376,7 +377,7 @@ async def generate_inbound_email_response_copy(
|
|
|
376
377
|
initial_response, status = await get_structured_output_with_assistant_and_vector_store(
|
|
377
378
|
prompt=prompt,
|
|
378
379
|
response_format=InboundEmailTriageResponse,
|
|
379
|
-
model="gpt-
|
|
380
|
+
model="gpt-5.1-chat",
|
|
380
381
|
vector_store_id=cleaned_context.external_known_data.external_openai_vector_store_id,
|
|
381
382
|
tool_config=tool_config
|
|
382
383
|
)
|
|
@@ -384,7 +385,7 @@ async def generate_inbound_email_response_copy(
|
|
|
384
385
|
initial_response, status = await get_structured_output_internal(
|
|
385
386
|
prompt=prompt,
|
|
386
387
|
response_format=InboundEmailTriageResponse,
|
|
387
|
-
model="gpt-
|
|
388
|
+
model="gpt-5.1-chat",
|
|
388
389
|
tool_config=tool_config
|
|
389
390
|
)
|
|
390
391
|
|
{dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/generate_linkedin_connect_message.py
RENAMED
|
@@ -136,6 +136,7 @@ async def generate_personalized_linkedin_copy(
|
|
|
136
136
|
- Make sure the signature in body has the sender_first_name is correct and in the format user has specified.
|
|
137
137
|
- User conversational name for company name if used.
|
|
138
138
|
- Make sure the body text is well-formatted and that newline and carriage-return characters are correctly present and preserved in the message body.
|
|
139
|
+
- Do Not use em dash in the generated output.
|
|
139
140
|
"""
|
|
140
141
|
|
|
141
142
|
vector_store_id = (
|
|
@@ -149,7 +150,7 @@ async def generate_personalized_linkedin_copy(
|
|
|
149
150
|
prompt=prompt,
|
|
150
151
|
response_format=LinkedInConnectMessage,
|
|
151
152
|
vector_store_id=vector_store_id,
|
|
152
|
-
model="gpt-
|
|
153
|
+
model="gpt-5.1-chat",
|
|
153
154
|
tool_config=tool_config,
|
|
154
155
|
use_cache=linkedin_context.message_instructions.use_cache if linkedin_context.message_instructions else True
|
|
155
156
|
)
|
|
@@ -158,7 +159,7 @@ async def generate_personalized_linkedin_copy(
|
|
|
158
159
|
response_data, status = await get_structured_output_internal(
|
|
159
160
|
prompt=prompt,
|
|
160
161
|
response_format=LinkedInConnectMessage,
|
|
161
|
-
model="gpt-
|
|
162
|
+
model="gpt-5.1-chat",
|
|
162
163
|
tool_config=tool_config,
|
|
163
164
|
use_cache=linkedin_context.message_instructions.use_cache if linkedin_context.message_instructions else True
|
|
164
165
|
)
|
|
@@ -205,6 +205,7 @@ async def generate_linkedin_response_message_copy(
|
|
|
205
205
|
DO NOT share any link to internal or made up document. You can attach or send any document.
|
|
206
206
|
If the user is asking for any additional document END_CONVERSATION and let Account executive handle it.
|
|
207
207
|
Make sure the body text is well-formatted and that newline and carriage-return characters are correctly present and preserved in the message body.
|
|
208
|
+
- Do Not use em dash in the generated output.
|
|
208
209
|
|
|
209
210
|
Required JSON output
|
|
210
211
|
--------------------
|
|
@@ -224,7 +225,7 @@ async def generate_linkedin_response_message_copy(
|
|
|
224
225
|
initial_response, status = await get_structured_output_with_assistant_and_vector_store(
|
|
225
226
|
prompt=prompt,
|
|
226
227
|
response_format=LinkedInTriageResponse,
|
|
227
|
-
model="gpt-
|
|
228
|
+
model="gpt-5.1-chat",
|
|
228
229
|
vector_store_id=cleaned_context.external_known_data.external_openai_vector_store_id,
|
|
229
230
|
tool_config=tool_config,
|
|
230
231
|
use_cache=linkedin_context.message_instructions.use_cache if linkedin_context.message_instructions else True
|
|
@@ -233,7 +234,7 @@ async def generate_linkedin_response_message_copy(
|
|
|
233
234
|
initial_response, status = await get_structured_output_internal(
|
|
234
235
|
prompt,
|
|
235
236
|
LinkedInTriageResponse,
|
|
236
|
-
model="gpt-
|
|
237
|
+
model="gpt-5.1-chat",
|
|
237
238
|
tool_config=tool_config,
|
|
238
239
|
use_cache=linkedin_context.message_instructions.use_cache if linkedin_context.message_instructions else True
|
|
239
240
|
)
|
|
@@ -56,7 +56,7 @@ async def get_structured_output_internal(
|
|
|
56
56
|
response_format: BaseModel,
|
|
57
57
|
effort: str = "low",
|
|
58
58
|
use_web_search: bool = False,
|
|
59
|
-
model: str = "gpt-
|
|
59
|
+
model: str = "gpt-5.1-chat",
|
|
60
60
|
tool_config: Optional[List[Dict]] = None,
|
|
61
61
|
use_cache: bool = True
|
|
62
62
|
):
|
|
@@ -217,7 +217,7 @@ async def get_structured_output_with_mcp(
|
|
|
217
217
|
response_format: BaseModel,
|
|
218
218
|
effort: str = "low",
|
|
219
219
|
use_web_search: bool = False,
|
|
220
|
-
model: str = "gpt-
|
|
220
|
+
model: str = "gpt-5.1-chat",
|
|
221
221
|
tool_config: Optional[List[Dict[str, Any]]] = None,
|
|
222
222
|
) -> Tuple[Union[BaseModel, str], str]:
|
|
223
223
|
"""
|
|
@@ -376,7 +376,7 @@ async def get_structured_output_with_assistant_and_vector_store(
|
|
|
376
376
|
response_format: BaseModel,
|
|
377
377
|
vector_store_id: str,
|
|
378
378
|
effort: str = "low",
|
|
379
|
-
model="gpt-
|
|
379
|
+
model="gpt-5.1-chat",
|
|
380
380
|
tool_config: Optional[List[Dict]] = None,
|
|
381
381
|
use_cache: bool = True
|
|
382
382
|
):
|
{dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/openai_assistant_and_file_utils.py
RENAMED
|
@@ -169,7 +169,7 @@ async def delete_files(
|
|
|
169
169
|
async def run_file_search(
|
|
170
170
|
query: str,
|
|
171
171
|
vector_store_id: str,
|
|
172
|
-
model: str = "gpt-
|
|
172
|
+
model: str = "gpt-5.1-chat",
|
|
173
173
|
max_num_results: int = 5,
|
|
174
174
|
store: bool = True,
|
|
175
175
|
tool_config: Optional[List[Dict]] = None,
|
|
@@ -213,7 +213,7 @@ async def run_file_search(
|
|
|
213
213
|
|
|
214
214
|
async def run_response_text(
|
|
215
215
|
prompt: str,
|
|
216
|
-
model: str = "gpt-
|
|
216
|
+
model: str = "gpt-5.1-chat",
|
|
217
217
|
max_tokens: int = 2048,
|
|
218
218
|
store: bool = True,
|
|
219
219
|
tool_config: Optional[List[Dict]] = None,
|
|
@@ -237,7 +237,7 @@ async def run_response_text(
|
|
|
237
237
|
async def run_response_structured(
|
|
238
238
|
prompt: str,
|
|
239
239
|
response_format: dict,
|
|
240
|
-
model: str = "gpt-
|
|
240
|
+
model: str = "gpt-5.1-chat",
|
|
241
241
|
max_tokens: int = 1024,
|
|
242
242
|
store: bool = True,
|
|
243
243
|
tool_config: Optional[List[Dict]] = None,
|
|
@@ -330,7 +330,7 @@ async def process_agent_request(row_batch: List[Dict], workflow: Dict, custom_in
|
|
|
330
330
|
name="AI Assistant",
|
|
331
331
|
instructions=instructions,
|
|
332
332
|
tools=[],
|
|
333
|
-
model="gpt-
|
|
333
|
+
model="gpt-5.1-chat"
|
|
334
334
|
)
|
|
335
335
|
thread = await client.beta.threads.create()
|
|
336
336
|
parsed_outputs = []
|
|
@@ -955,7 +955,7 @@ async def get_function_call_arguments(input_text: str, function_name: str) -> Tu
|
|
|
955
955
|
|
|
956
956
|
# Make the API call
|
|
957
957
|
response = await client.beta.chat.completions.parse(
|
|
958
|
-
model="gpt-
|
|
958
|
+
model="gpt-5.1-chat",
|
|
959
959
|
messages=[
|
|
960
960
|
{"role": "system", "content": "Extract function arguments in JSON format."},
|
|
961
961
|
{"role": "user", "content": prompt},
|
|
@@ -91,7 +91,7 @@ async def research_lead_with_full_info_ai(
|
|
|
91
91
|
response, status = await get_structured_output_internal(
|
|
92
92
|
instructions,
|
|
93
93
|
LeadResearchInformation,
|
|
94
|
-
model="gpt-
|
|
94
|
+
model="gpt-5.1-chat",
|
|
95
95
|
tool_config=tool_config
|
|
96
96
|
)
|
|
97
97
|
if status == "SUCCESS":
|
|
@@ -165,7 +165,7 @@ async def research_company_with_full_info_ai(
|
|
|
165
165
|
response, status = await get_structured_output_internal(
|
|
166
166
|
instructions,
|
|
167
167
|
CompanyResearchInformation,
|
|
168
|
-
model="gpt-
|
|
168
|
+
model="gpt-5.1-chat",
|
|
169
169
|
use_web_search=False,
|
|
170
170
|
tool_config=tool_config
|
|
171
171
|
)
|
|
@@ -51,7 +51,7 @@ async def get_structured_output(text: str, tool_config: Optional[List[Dict]] = N
|
|
|
51
51
|
f"Text:\n{text}"
|
|
52
52
|
)
|
|
53
53
|
result, status = await get_structured_output_internal(
|
|
54
|
-
prompt, LeadSearchResult, model = "gpt-
|
|
54
|
+
prompt, LeadSearchResult, model = "gpt-5.1-chat", tool_config=tool_config
|
|
55
55
|
)
|
|
56
56
|
if status != "SUCCESS" or result is None:
|
|
57
57
|
return LeadSearchResult()
|
|
@@ -137,7 +137,7 @@ async def pick_best_linkedin_candidate_with_llm(
|
|
|
137
137
|
result, status = await get_structured_output_internal(
|
|
138
138
|
prompt,
|
|
139
139
|
LinkedinCandidateChoice,
|
|
140
|
-
model="gpt-
|
|
140
|
+
model="gpt-5.1-chat",
|
|
141
141
|
tool_config=tool_config,
|
|
142
142
|
)
|
|
143
143
|
|
|
@@ -1619,7 +1619,7 @@ async def test_connectivity(tool_config: List[Dict[str, Any]]) -> Dict[str, Dict
|
|
|
1619
1619
|
|
|
1620
1620
|
# OpenAI needs extra args
|
|
1621
1621
|
if tool_name == "openai":
|
|
1622
|
-
model_name = next((c["value"] for c in config_entries if c["name"] == "modelName"), "gpt-
|
|
1622
|
+
model_name = next((c["value"] for c in config_entries if c["name"] == "modelName"), "gpt-5.1-chat")
|
|
1623
1623
|
reasoning_effort = next((c["value"] for c in config_entries if c["name"] == "reasoningEffort"), "medium")
|
|
1624
1624
|
results[tool_name] = await test_openai(api_key, model_name, reasoning_effort)
|
|
1625
1625
|
|
|
@@ -159,7 +159,7 @@ async def create_property_mapping(
|
|
|
159
159
|
prompt=user_prompt,
|
|
160
160
|
response_format=PropertyMappingList,
|
|
161
161
|
effort="high",
|
|
162
|
-
model="gpt-
|
|
162
|
+
model="gpt-5.1-chat",
|
|
163
163
|
tool_config=tool_config
|
|
164
164
|
)
|
|
165
165
|
if status == "SUCCESS" and response and response.properties:
|
|
@@ -21,7 +21,7 @@ async def call_openai_api(system_content: str, user_content: str, max_tokens: in
|
|
|
21
21
|
try:
|
|
22
22
|
# Call the OpenAI API using the new client method
|
|
23
23
|
response = client.chat.completions.create(
|
|
24
|
-
model="gpt-
|
|
24
|
+
model="gpt-5.1-chat",
|
|
25
25
|
messages=[
|
|
26
26
|
{"role": "system", "content": system_content},
|
|
27
27
|
{"role": "user", "content": user_content}
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/check_email_validity_tools.py
RENAMED
|
File without changes
|
|
File without changes
|
{dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/check_linkedin_url_validity.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/compose_three_step_workflow.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/extract_email_content_for_llm.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/openapi_tool/openapi_tool.py
RENAMED
|
File without changes
|
{dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/parse_linkedin_messages_txt.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
|
{dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/serarch_router_local_business.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dhisana-0.0.1.dev228 → dhisana-0.0.1.dev230}/src/dhisana/utils/serpapi_local_business_search.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
|
|
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
|