solana-agent 23.0.7__py3-none-any.whl → 24.0.0__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.
@@ -20,7 +20,6 @@ class OpenAIAdapter(LLMProvider):
20
20
  self.client = OpenAI(api_key=api_key)
21
21
  self.parse_model = "gpt-4o-mini"
22
22
  self.text_model = "gpt-4o-mini"
23
- self.internet_search_model = "gpt-4o-mini-search-preview"
24
23
  self.transcription_model = "gpt-4o-mini-transcribe"
25
24
  self.tts_model = "gpt-4o-mini-tts"
26
25
 
@@ -104,7 +103,6 @@ class OpenAIAdapter(LLMProvider):
104
103
  self,
105
104
  prompt: str,
106
105
  system_prompt: str = "",
107
- internet_search: bool = False,
108
106
  ) -> AsyncGenerator[str, None]: # pragma: no cover
109
107
  """Generate text from OpenAI models."""
110
108
  messages = []
@@ -114,15 +112,11 @@ class OpenAIAdapter(LLMProvider):
114
112
 
115
113
  messages.append({"role": "user", "content": prompt})
116
114
 
117
- model = self.text_model
118
- if internet_search:
119
- model = self.internet_search_model
120
-
121
115
  # Prepare request parameters
122
116
  request_params = {
123
117
  "messages": messages,
124
118
  "stream": True,
125
- "model": model,
119
+ "model": self.text_model,
126
120
  }
127
121
  try:
128
122
  response = self.client.chat.completions.create(**request_params)
@@ -56,7 +56,6 @@ class SolanaAgent(SolanaAgentInterface):
56
56
  "flac", "mp3", "mp4", "mpeg", "mpga", "m4a", "ogg", "wav", "webm"
57
57
  ] = "mp4",
58
58
  router: Optional[RoutingInterface] = None,
59
- internet_search: bool = False,
60
59
  ) -> AsyncGenerator[Union[str, bytes], None]: # pragma: no cover
61
60
  """Process a user message and return the response stream.
62
61
 
@@ -70,7 +69,6 @@ class SolanaAgent(SolanaAgentInterface):
70
69
  audio_output_format: Audio output format
71
70
  audio_input_format: Audio input format
72
71
  router: Optional routing service for processing
73
- internet_search: Flag to use OpenAI Internet search
74
72
 
75
73
  Returns:
76
74
  Async generator yielding response chunks (text strings or audio bytes)
@@ -85,7 +83,6 @@ class SolanaAgent(SolanaAgentInterface):
85
83
  audio_input_format=audio_input_format,
86
84
  prompt=prompt,
87
85
  router=router,
88
- internet_search=internet_search,
89
86
  ):
90
87
  yield chunk
91
88
 
@@ -24,7 +24,6 @@ class SolanaAgent(ABC):
24
24
  "flac", "mp3", "mp4", "mpeg", "mpga", "m4a", "ogg", "wav", "webm"
25
25
  ] = "mp4",
26
26
  router: Optional[RoutingInterface] = None,
27
- internet_search: bool = False,
28
27
  ) -> AsyncGenerator[Union[str, bytes], None]:
29
28
  """Process a user message and return the response stream."""
30
29
  pass
@@ -15,7 +15,6 @@ class LLMProvider(ABC):
15
15
  self,
16
16
  prompt: str,
17
17
  system_prompt: str = "",
18
- internet_search: bool = False,
19
18
  ) -> AsyncGenerator[str, None]:
20
19
  """Generate text from the language model."""
21
20
  pass
@@ -34,7 +34,6 @@ class AgentService(ABC):
34
34
  "flac", "mp3", "mp4", "mpeg", "mpga", "m4a", "ogg", "wav", "webm"
35
35
  ] = "mp4",
36
36
  prompt: Optional[str] = None,
37
- internet_search: bool = False,
38
37
  ) -> AsyncGenerator[Union[str, bytes], None]:
39
38
  """Generate a response from an agent."""
40
39
  pass
@@ -20,7 +20,6 @@ class QueryService(ABC):
20
20
  "flac", "mp3", "mp4", "mpeg", "mpga", "m4a", "ogg", "wav", "webm"
21
21
  ] = "mp4",
22
22
  prompt: Optional[str] = None,
23
- internet_search: bool = False,
24
23
  ) -> AsyncGenerator[Union[str, bytes], None]:
25
24
  """Process the user request and generate a response."""
26
25
  pass
@@ -177,7 +177,6 @@ class AgentService(AgentServiceInterface):
177
177
  "flac", "mp3", "mp4", "mpeg", "mpga", "m4a", "ogg", "wav", "webm"
178
178
  ] = "mp4",
179
179
  prompt: Optional[str] = None,
180
- internet_search: bool = False,
181
180
  ) -> AsyncGenerator[Union[str, bytes], None]: # pragma: no cover
182
181
  """Generate a response with support for text/audio input/output."""
183
182
  agent = next((a for a in self.agents if a.name == agent_name), None)
@@ -231,7 +230,6 @@ class AgentService(AgentServiceInterface):
231
230
  async for chunk in self.llm_provider.generate_text(
232
231
  prompt=query_text,
233
232
  system_prompt=tool_calling_system_prompt,
234
- internet_search=internet_search,
235
233
  ):
236
234
  # Check if the chunk is JSON or a tool call
237
235
  if (chunk.strip().startswith("{") or "{\"tool_call\":" in chunk) and not is_json:
@@ -49,7 +49,6 @@ class QueryService(QueryServiceInterface):
49
49
  ] = "mp4",
50
50
  prompt: Optional[str] = None,
51
51
  router: Optional[RoutingServiceInterface] = None,
52
- internet_search: bool = False,
53
52
  ) -> AsyncGenerator[Union[str, bytes], None]: # pragma: no cover
54
53
  """Process the user request with appropriate agent.
55
54
 
@@ -63,7 +62,6 @@ class QueryService(QueryServiceInterface):
63
62
  audio_input_format: Audio input format
64
63
  prompt: Optional prompt for the agent
65
64
  router: Optional routing service for processing
66
- internet_search: Flag to use OpenAI Internet search
67
65
 
68
66
  Yields:
69
67
  Response chunks (text strings or audio bytes)
@@ -122,7 +120,6 @@ class QueryService(QueryServiceInterface):
122
120
  audio_output_format=audio_output_format,
123
121
  audio_instructions=audio_instructions,
124
122
  prompt=prompt,
125
- internet_search=internet_search,
126
123
  ):
127
124
  yield audio_chunk
128
125
 
@@ -141,7 +138,6 @@ class QueryService(QueryServiceInterface):
141
138
  memory_context=memory_context,
142
139
  output_format="text",
143
140
  prompt=prompt,
144
- internet_search=internet_search,
145
141
  ):
146
142
  yield chunk
147
143
  full_text_response += chunk
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: solana-agent
3
- Version: 23.0.7
3
+ Version: 24.0.0
4
4
  Summary: Agentic IQ
5
5
  License: MIT
6
6
  Keywords: ai,openai,ai agents,agi
@@ -14,7 +14,7 @@ Classifier: Programming Language :: Python :: 3
14
14
  Classifier: Programming Language :: Python :: 3.12
15
15
  Classifier: Programming Language :: Python :: 3.13
16
16
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
17
- Requires-Dist: openai (>=1.70.0,<2.0.0)
17
+ Requires-Dist: openai (>=1.71.0,<2.0.0)
18
18
  Requires-Dist: pydantic (>=2.11.2,<3.0.0)
19
19
  Requires-Dist: pymongo (>=4.11.3,<5.0.0)
20
20
  Requires-Dist: zep-cloud (>=2.9.0,<3.0.0)
@@ -44,7 +44,7 @@ Build your AI business in three lines of code!
44
44
  * Multi-Agent Swarm
45
45
  * Multi-Modal Streaming (Text & Audio)
46
46
  * Conversational Memory & History
47
- * Built-in Internet Search
47
+ * Internet Search
48
48
  * Intelligent Routing
49
49
  * Business Alignment
50
50
  * Extensible Tooling
@@ -60,7 +60,7 @@ Build your AI business in three lines of code!
60
60
  * Seamless text and audio streaming with real-time multi-modal processing
61
61
  * Configurable audio voice characteristics via prompting
62
62
  * Persistent memory that preserves context across all agent interactions
63
- * Quick built-in Internet search to answer users' queries
63
+ * Quick Internet search to answer users' queries
64
64
  * Streamlined message history for all agent interactions
65
65
  * Intelligent query routing to agents with optimal domain expertise or your own custom routing
66
66
  * Unified value system ensuring brand-aligned agent responses
@@ -82,7 +82,6 @@ Build your AI business in three lines of code!
82
82
  * [gpt-4o-mini](https://platform.openai.com/docs/models/gpt-4o-mini)
83
83
  * [gpt-4o-mini-tts](https://platform.openai.com/docs/models/gpt-4o-mini-tts)
84
84
  * [gpt-4o-mini-transcribe](https://platform.openai.com/docs/models/gpt-4o-mini-transcribe)
85
- * [gpt-4o-mini-search-preview](https://platform.openai.com/docs/models/gpt-4o-mini-search-preview)
86
85
 
87
86
  ## Installation
88
87
 
@@ -353,21 +352,6 @@ API Calls:
353
352
 
354
353
  * If the Zep user and session isn't created it creates them for 2 API calls (POST)
355
354
 
356
- ### Internet Search
357
-
358
- This mode is great for text output where the default response from OpenAI is enough.
359
-
360
- It is not suitable for audio as the OpenAI search results contain links and markdown.
361
-
362
- Also it may not call tools when they should be called as it thinks the search results answer the user query.
363
-
364
- It is much faster than calling `search_internet` from `sakit` as it saves 2 API calls.
365
-
366
- ```python
367
- async for response in solana_agent.process("user123", "What is the latest news on Canada?", internet_search=True):
368
- print(response, end="")
369
- ```
370
-
371
355
  ### Customize Speech
372
356
 
373
357
  This is an audio to audio example using the `audio_instructions` parameter.
@@ -393,10 +377,10 @@ Tools can be used from plugins like Solana Agent Kit (sakit) or via inline tools
393
377
 
394
378
  * Agents can only call one tool per response
395
379
  * Agents choose the best tool for the job
396
- * Tools do not use OpenAI function calling
397
- * Tools are async functions
380
+ * Solana Agent doesn't use OpenAI function calling (tools) as they don't support async functions
381
+ * Solana Agent tools are async functions
398
382
 
399
- ### Plugin Tool Example
383
+ ### Internet Search (Plugin Example)
400
384
 
401
385
  `pip install sakit`
402
386
 
@@ -1,22 +1,22 @@
1
1
  solana_agent/__init__.py,sha256=ceYeUpjIitpln8YK1r0JVJU8mzG6cRPYu-HLny3d-Tw,887
2
2
  solana_agent/adapters/__init__.py,sha256=tiEEuuy0NF3ngc_tGEcRTt71zVI58v3dYY9RvMrF2Cg,204
3
- solana_agent/adapters/llm_adapter.py,sha256=ReCVQH0X0hf5NpLqEMESft5LZtPj3gDNIOBiZpClqzo,5737
3
+ solana_agent/adapters/llm_adapter.py,sha256=Q1oCOV3Zzk_hEtcr7OgclwEss_4M61B5do1TFN1541M,5534
4
4
  solana_agent/adapters/mongodb_adapter.py,sha256=qqEFbY_v1XGyFXBmwd5HSXSSHnA9wWo-Hm1vGEyIG0k,2718
5
5
  solana_agent/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
- solana_agent/client/solana_agent.py,sha256=u-W9KVfd_hrgj9cVnc4t_AD-8wSEeK88xLvBt1chW90,5356
6
+ solana_agent/client/solana_agent.py,sha256=M2AHloEFXEAM321je9xRdos5dXNQigQ0uYqnzXv7-iA,5208
7
7
  solana_agent/domains/__init__.py,sha256=HiC94wVPRy-QDJSSRywCRrhrFfTBeHjfi5z-QfZv46U,168
8
8
  solana_agent/domains/agent.py,sha256=WTo-pEc66V6D_35cpDE-kTsw1SJM-dtylPZ7em5em7Q,2659
9
9
  solana_agent/domains/routing.py,sha256=UDlgTjUoC9xIBVYu_dnf9-KG_bBgdEXAv_UtDOrYo0w,650
10
10
  solana_agent/factories/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
11
  solana_agent/factories/agent_factory.py,sha256=mJQb1G0-gebizZvSVHm4NAxRMB1kemm2w_BAcYlN15Y,5496
12
12
  solana_agent/interfaces/__init__.py,sha256=IQs1WIM1FeKP1-kY2FEfyhol_dB-I-VAe2rD6jrVF6k,355
13
- solana_agent/interfaces/client/client.py,sha256=vZcIXSnNawXlx0x_vD4D2ldtA5Oy93DGRjkDFv-AcwU,1729
13
+ solana_agent/interfaces/client/client.py,sha256=CB8YuSsn-Lvinrb12huyIVaFpJqVDh8EHsHJi9SVXM4,1690
14
14
  solana_agent/interfaces/plugins/plugins.py,sha256=T8HPBsekmzVwfU_Rizp-vtzAeYkMlKMYD7U9d0Wjq9c,3338
15
15
  solana_agent/interfaces/providers/data_storage.py,sha256=NqGeFvAzhz9rr-liLPRNCGjooB2EIhe-EVsMmX__b0M,1658
16
- solana_agent/interfaces/providers/llm.py,sha256=_sbgSs3Sy1QAeFCB_jzw_Rjpq-N5wBY5qt6tmFYD9K4,1591
16
+ solana_agent/interfaces/providers/llm.py,sha256=AxfUCBVbyN2GaBOdAo_Oxoy7nP9-IvHQl8Xo8H-ZLNs,1552
17
17
  solana_agent/interfaces/providers/memory.py,sha256=oNOH8WZXVW8assDigIWZAWiwkxbpDiKupxA2RB6tQvQ,1010
18
- solana_agent/interfaces/services/agent.py,sha256=EPHY9uDLXBNo5CD5dLzI8vZZRd2LLiinei_biKIg228,2152
19
- solana_agent/interfaces/services/query.py,sha256=X54dLxwU2DTF5eReeg0XsOFVNBo6cFmH4iyCuWdN3Gs,1379
18
+ solana_agent/interfaces/services/agent.py,sha256=ETAfz_VbtOgpTDIpo9tMSJnUAM5boPJXw9R7b_WEu3o,2113
19
+ solana_agent/interfaces/services/query.py,sha256=0C5yD8DYNrsJd3SA0lVb-ajm0fMqJJNPuPeHoab7-WQ,1340
20
20
  solana_agent/interfaces/services/routing.py,sha256=UzJC-z-Q9puTWPFGEo2_CAhIxuxP5IRnze7S66NSrsI,397
21
21
  solana_agent/plugins/__init__.py,sha256=coZdgJKq1ExOaj6qB810i3rEhbjdVlrkN76ozt_Ojgo,193
22
22
  solana_agent/plugins/manager.py,sha256=Il49hXeqvu0b02pURNNp7mY8kp9_sqpi_vJIWBW5Hc0,5044
@@ -26,10 +26,10 @@ solana_agent/plugins/tools/auto_tool.py,sha256=DgES_cZ6xKSf_HJpFINpvJxrjVlk5oeqa
26
26
  solana_agent/repositories/__init__.py,sha256=fP83w83CGzXLnSdq-C5wbw9EhWTYtqE2lQTgp46-X_4,163
27
27
  solana_agent/repositories/memory.py,sha256=GYyNcwdQZKqfCjG_6uYh7YqjwwbUwvuVwbNim4aHN3I,7329
28
28
  solana_agent/services/__init__.py,sha256=ab_NXJmwYUCmCrCzuTlZ47bJZINW0Y0F5jfQ9OovidU,163
29
- solana_agent/services/agent.py,sha256=-u2rtu6w_0BQoHPFU3GdLuZLinQzQ0cpktOUsCRcbUU,20048
30
- solana_agent/services/query.py,sha256=6K5RcxoHXaKMvxmDPo_WInRYtjOKJ8In4BgdLhzc_98,11363
29
+ solana_agent/services/agent.py,sha256=hvgZPOcGuojALlpf-zpZ20ga7j45CFCBxZyHLz6ge04,19960
30
+ solana_agent/services/query.py,sha256=IFEWYfkDCbp8W0FDooAor_UZe7H1cqgrud-CzoGlu-8,11154
31
31
  solana_agent/services/routing.py,sha256=PMCSG5m3uLMaHMj3dxNvNfcFZaeaDi7kMr7AEBCzwDE,6499
32
- solana_agent-23.0.7.dist-info/LICENSE,sha256=BnSRc-NSFuyF2s496l_4EyrwAP6YimvxWcjPiJ0J7g4,1057
33
- solana_agent-23.0.7.dist-info/METADATA,sha256=D4x8ji7WuLa_OSYx5gtfTKFFOkZKki5ptvOUYfTqE8M,20857
34
- solana_agent-23.0.7.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
35
- solana_agent-23.0.7.dist-info/RECORD,,
32
+ solana_agent-24.0.0.dist-info/LICENSE,sha256=BnSRc-NSFuyF2s496l_4EyrwAP6YimvxWcjPiJ0J7g4,1057
33
+ solana_agent-24.0.0.dist-info/METADATA,sha256=FnvqQI4jAN_q3wAEArOQXe0YDQ0wmfxfx5XJ2lVKgH8,20270
34
+ solana_agent-24.0.0.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
35
+ solana_agent-24.0.0.dist-info/RECORD,,