solana-agent 16.0.0__py3-none-any.whl → 17.0.1__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.
- solana_agent/adapters/llm_adapter.py +1 -2
- solana_agent/client/solana_agent.py +4 -4
- solana_agent/interfaces/client/client.py +2 -2
- solana_agent/interfaces/services/agent.py +2 -2
- solana_agent/interfaces/services/query.py +2 -2
- solana_agent/services/agent.py +8 -8
- solana_agent/services/query.py +6 -6
- {solana_agent-16.0.0.dist-info → solana_agent-17.0.1.dist-info}/METADATA +3 -3
- {solana_agent-16.0.0.dist-info → solana_agent-17.0.1.dist-info}/RECORD +11 -11
- {solana_agent-16.0.0.dist-info → solana_agent-17.0.1.dist-info}/LICENSE +0 -0
- {solana_agent-16.0.0.dist-info → solana_agent-17.0.1.dist-info}/WHEEL +0 -0
@@ -21,7 +21,7 @@ class OpenAIAdapter(LLMProvider):
|
|
21
21
|
self.parse_model = "gpt-4o-mini"
|
22
22
|
self.search_model = "gpt-4o-mini-search-preview"
|
23
23
|
self.transcription_model = "gpt-4o-mini-transcribe"
|
24
|
-
self.tts_model = "
|
24
|
+
self.tts_model = "tts-1"
|
25
25
|
|
26
26
|
async def tts(
|
27
27
|
self,
|
@@ -48,7 +48,6 @@ class OpenAIAdapter(LLMProvider):
|
|
48
48
|
model=self.tts_model,
|
49
49
|
voice=voice,
|
50
50
|
input=text,
|
51
|
-
instructions=instructions,
|
52
51
|
response_format=response_format
|
53
52
|
)
|
54
53
|
|
@@ -47,8 +47,8 @@ class SolanaAgent(SolanaAgentInterface):
|
|
47
47
|
audio_voice: Literal["alloy", "ash", "ballad", "coral", "echo",
|
48
48
|
"fable", "onyx", "nova", "sage", "shimmer"] = "nova",
|
49
49
|
audio_instructions: Optional[str] = None,
|
50
|
-
|
51
|
-
|
50
|
+
audio_output_format: Literal['mp3', 'opus',
|
51
|
+
'aac', 'flac', 'wav', 'pcm'] = "aac",
|
52
52
|
audio_input_format: Literal[
|
53
53
|
"flac", "mp3", "mp4", "mpeg", "mpga", "m4a", "ogg", "wav", "webm"
|
54
54
|
] = "mp4",
|
@@ -61,7 +61,7 @@ class SolanaAgent(SolanaAgentInterface):
|
|
61
61
|
output_format: Response format ("text" or "audio")
|
62
62
|
audio_voice: Voice to use for audio output
|
63
63
|
audio_instructions: Optional instructions for audio synthesis
|
64
|
-
|
64
|
+
audio_output_format: Audio output format
|
65
65
|
audio_input_format: Audio input format
|
66
66
|
|
67
67
|
Returns:
|
@@ -73,7 +73,7 @@ class SolanaAgent(SolanaAgentInterface):
|
|
73
73
|
output_format=output_format,
|
74
74
|
audio_voice=audio_voice,
|
75
75
|
audio_instructions=audio_instructions,
|
76
|
-
|
76
|
+
audio_output_format=audio_output_format,
|
77
77
|
audio_input_format=audio_input_format,
|
78
78
|
):
|
79
79
|
yield chunk
|
@@ -14,8 +14,8 @@ class SolanaAgent(ABC):
|
|
14
14
|
audio_voice: Literal["alloy", "ash", "ballad", "coral", "echo",
|
15
15
|
"fable", "onyx", "nova", "sage", "shimmer"] = "nova",
|
16
16
|
audio_instructions: str = None,
|
17
|
-
|
18
|
-
|
17
|
+
audio_output_format: Literal['mp3', 'opus',
|
18
|
+
'aac', 'flac', 'wav', 'pcm'] = "aac",
|
19
19
|
audio_input_format: Literal[
|
20
20
|
"flac", "mp3", "mp4", "mpeg", "mpga", "m4a", "ogg", "wav", "webm"
|
21
21
|
] = "mp4",
|
@@ -33,8 +33,8 @@ class AgentService(ABC):
|
|
33
33
|
audio_voice: Literal["alloy", "ash", "ballad", "coral", "echo",
|
34
34
|
"fable", "onyx", "nova", "sage", "shimmer"] = "nova",
|
35
35
|
audio_instructions: str = None,
|
36
|
-
|
37
|
-
|
36
|
+
audio_output_format: Literal['mp3', 'opus',
|
37
|
+
'aac', 'flac', 'wav', 'pcm'] = "aac",
|
38
38
|
audio_input_format: Literal[
|
39
39
|
"flac", "mp3", "mp4", "mpeg", "mpga", "m4a", "ogg", "wav", "webm"
|
40
40
|
] = "mp4",
|
@@ -14,8 +14,8 @@ class QueryService(ABC):
|
|
14
14
|
audio_voice: Literal["alloy", "ash", "ballad", "coral", "echo",
|
15
15
|
"fable", "onyx", "nova", "sage", "shimmer"] = "nova",
|
16
16
|
audio_instructions: Optional[str] = None,
|
17
|
-
|
18
|
-
|
17
|
+
audio_output_format: Literal['mp3', 'opus',
|
18
|
+
'aac', 'flac', 'wav', 'pcm'] = "aac",
|
19
19
|
audio_input_format: Literal[
|
20
20
|
"flac", "mp3", "mp4", "mpeg", "mpga", "m4a", "ogg", "wav", "webm"
|
21
21
|
] = "mp4",
|
solana_agent/services/agent.py
CHANGED
@@ -194,8 +194,8 @@ class AgentService(AgentServiceInterface):
|
|
194
194
|
audio_voice: Literal["alloy", "ash", "ballad", "coral", "echo",
|
195
195
|
"fable", "onyx", "nova", "sage", "shimmer"] = "nova",
|
196
196
|
audio_instructions: Optional[str] = None,
|
197
|
-
|
198
|
-
|
197
|
+
audio_output_format: Literal['mp3', 'opus',
|
198
|
+
'aac', 'flac', 'wav', 'pcm'] = "aac",
|
199
199
|
audio_input_format: Literal[
|
200
200
|
"flac", "mp3", "mp4", "mpeg", "mpga", "m4a", "ogg", "wav", "webm"
|
201
201
|
] = "mp4",
|
@@ -210,7 +210,7 @@ class AgentService(AgentServiceInterface):
|
|
210
210
|
output_format: Response format ("text" or "audio")
|
211
211
|
audio_voice: Voice to use for audio output
|
212
212
|
audio_instructions: Optional instructions for audio synthesis
|
213
|
-
|
213
|
+
audio_output_format: Audio output format
|
214
214
|
audio_input_format: Audio input format
|
215
215
|
|
216
216
|
Yields:
|
@@ -220,7 +220,7 @@ class AgentService(AgentServiceInterface):
|
|
220
220
|
if not agent:
|
221
221
|
error_msg = f"Agent '{agent_name}' not found."
|
222
222
|
if output_format == "audio":
|
223
|
-
async for chunk in self.llm_provider.tts(error_msg, instructions=audio_instructions, response_format=
|
223
|
+
async for chunk in self.llm_provider.tts(error_msg, instructions=audio_instructions, response_format=audio_output_format, voice=audio_voice):
|
224
224
|
yield chunk
|
225
225
|
else:
|
226
226
|
yield error_msg
|
@@ -261,7 +261,7 @@ class AgentService(AgentServiceInterface):
|
|
261
261
|
agent_name, chunk,
|
262
262
|
)
|
263
263
|
if output_format == "audio":
|
264
|
-
async for audio_chunk in self.llm_provider.tts(result, instructions=audio_instructions, response_format=
|
264
|
+
async for audio_chunk in self.llm_provider.tts(result, instructions=audio_instructions, response_format=audio_output_format, voice=audio_voice):
|
265
265
|
yield audio_chunk
|
266
266
|
else:
|
267
267
|
yield result
|
@@ -271,7 +271,7 @@ class AgentService(AgentServiceInterface):
|
|
271
271
|
text_buffer += chunk
|
272
272
|
if any(punct in chunk for punct in ".!?"):
|
273
273
|
async for audio_chunk in self.llm_provider.tts(
|
274
|
-
text_buffer, instructions=audio_instructions, response_format=
|
274
|
+
text_buffer, instructions=audio_instructions, response_format=audio_output_format, voice=audio_voice
|
275
275
|
):
|
276
276
|
yield audio_chunk
|
277
277
|
text_buffer = ""
|
@@ -281,14 +281,14 @@ class AgentService(AgentServiceInterface):
|
|
281
281
|
# Handle any remaining text in buffer
|
282
282
|
if output_format == "audio" and text_buffer:
|
283
283
|
async for audio_chunk in self.llm_provider.tts(
|
284
|
-
text_buffer, instructions=audio_instructions, response_format=
|
284
|
+
text_buffer, instructions=audio_instructions, response_format=audio_output_format, voice=audio_voice
|
285
285
|
):
|
286
286
|
yield audio_chunk
|
287
287
|
|
288
288
|
except Exception as e:
|
289
289
|
error_msg = f"I apologize, but I encountered an error: {str(e)}"
|
290
290
|
if output_format == "audio":
|
291
|
-
async for chunk in self.llm_provider.tts(error_msg, instructions=audio_instructions, response_format=
|
291
|
+
async for chunk in self.llm_provider.tts(error_msg, instructions=audio_instructions, response_format=audio_output_format, voice=audio_voice):
|
292
292
|
yield chunk
|
293
293
|
else:
|
294
294
|
yield error_msg
|
solana_agent/services/query.py
CHANGED
@@ -41,8 +41,8 @@ class QueryService(QueryServiceInterface):
|
|
41
41
|
audio_voice: Literal["alloy", "ash", "ballad", "coral", "echo",
|
42
42
|
"fable", "onyx", "nova", "sage", "shimmer"] = "nova",
|
43
43
|
audio_instructions: Optional[str] = None,
|
44
|
-
|
45
|
-
|
44
|
+
audio_output_format: Literal['mp3', 'opus',
|
45
|
+
'aac', 'flac', 'wav', 'pcm'] = "aac",
|
46
46
|
audio_input_format: Literal[
|
47
47
|
"flac", "mp3", "mp4", "mpeg", "mpga", "m4a", "ogg", "wav", "webm"
|
48
48
|
] = "mp4",
|
@@ -55,7 +55,7 @@ class QueryService(QueryServiceInterface):
|
|
55
55
|
output_format: Response format ("text" or "audio")
|
56
56
|
audio_voice: Voice to use for audio output
|
57
57
|
audio_instructions: Optional instructions for audio synthesis
|
58
|
-
|
58
|
+
audio_output_format: Audio output format
|
59
59
|
audio_input_format: Audio input format
|
60
60
|
|
61
61
|
Yields:
|
@@ -74,7 +74,7 @@ class QueryService(QueryServiceInterface):
|
|
74
74
|
if user_text.strip().lower() in ["test", "hello", "hi", "hey", "ping"]:
|
75
75
|
response = "Hello! How can I help you today?"
|
76
76
|
if output_format == "audio":
|
77
|
-
async for chunk in self.agent_service.llm_provider.tts(response, instructions=audio_instructions, response_format=
|
77
|
+
async for chunk in self.agent_service.llm_provider.tts(response, instructions=audio_instructions, response_format=audio_output_format, voice=audio_voice):
|
78
78
|
yield chunk
|
79
79
|
else:
|
80
80
|
yield response
|
@@ -101,7 +101,7 @@ class QueryService(QueryServiceInterface):
|
|
101
101
|
memory_context=memory_context,
|
102
102
|
output_format=output_format,
|
103
103
|
audio_voice=audio_voice,
|
104
|
-
|
104
|
+
audio_output_format=audio_output_format,
|
105
105
|
):
|
106
106
|
yield chunk
|
107
107
|
if output_format == "text":
|
@@ -126,7 +126,7 @@ class QueryService(QueryServiceInterface):
|
|
126
126
|
except Exception as e:
|
127
127
|
error_msg = f"I apologize for the technical difficulty. {str(e)}"
|
128
128
|
if output_format == "audio":
|
129
|
-
async for chunk in self.agent_service.llm_provider.tts(error_msg, instructions=audio_instructions, response_format=
|
129
|
+
async for chunk in self.agent_service.llm_provider.tts(error_msg, instructions=audio_instructions, response_format=audio_output_format, voice=audio_voice):
|
130
130
|
yield chunk
|
131
131
|
else:
|
132
132
|
yield error_msg
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: solana-agent
|
3
|
-
Version:
|
3
|
+
Version: 17.0.1
|
4
4
|
Summary: The Future of Work
|
5
5
|
License: MIT
|
6
6
|
Keywords: ai,openai,ai agents,agi
|
@@ -109,11 +109,11 @@ async for response in solana_agent.process("user123", "What are the latest AI de
|
|
109
109
|
print(response, end="")
|
110
110
|
```
|
111
111
|
|
112
|
-
##
|
112
|
+
## Models Used
|
113
113
|
* The model used for AI Agents is `gpt-4o-mini-search-preview`
|
114
114
|
* The model used for internal structured outputs is `gpt-4o-mini`
|
115
115
|
* The model used for audio_transcription is `gpt-4o-mini-transcribe`
|
116
|
-
* The model used for tts is `
|
116
|
+
* The model used for tts is `tts-1`
|
117
117
|
|
118
118
|
## Solana Agent Kit
|
119
119
|
|
@@ -1,23 +1,23 @@
|
|
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=
|
3
|
+
solana_agent/adapters/llm_adapter.py,sha256=s9eZkS1b-m7hK99hPLK421AFkud2jySFg4u4qNB9ayE,6080
|
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=
|
6
|
+
solana_agent/client/solana_agent.py,sha256=G0m6GD6N8J3tpjfLoKBMzIR3cZU9qs9cDBfY1mngvzI,4207
|
7
7
|
solana_agent/domains/__init__.py,sha256=HiC94wVPRy-QDJSSRywCRrhrFfTBeHjfi5z-QfZv46U,168
|
8
8
|
solana_agent/domains/agent.py,sha256=Ak_hD5gTCzRqAHLmqtxnny0Xki1qAKR7RzLW9LOQBTg,2930
|
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=7krNpsAHnle-IFjKqYz4aJgfvlj7yMRhfSeqi-4S2sI,5563
|
12
12
|
solana_agent/interfaces/__init__.py,sha256=IQs1WIM1FeKP1-kY2FEfyhol_dB-I-VAe2rD6jrVF6k,355
|
13
|
-
solana_agent/interfaces/client/client.py,sha256=
|
13
|
+
solana_agent/interfaces/client/client.py,sha256=S0uOPnELVUL-bbLm2z7htLrX-kR0HuSaOVxcWehS2a8,1257
|
14
14
|
solana_agent/interfaces/plugins/plugins.py,sha256=TMmTXwHhmkdJpIhgADfrpGGGk7PHP7O9Qi89uA26uMI,3013
|
15
15
|
solana_agent/interfaces/providers/data_storage.py,sha256=NqGeFvAzhz9rr-liLPRNCGjooB2EIhe-EVsMmX__b0M,1658
|
16
16
|
solana_agent/interfaces/providers/llm.py,sha256=Ay0-37ppAirGZdGS2LrDq0xAr_WY1_Gis84OXPGsaWs,1653
|
17
17
|
solana_agent/interfaces/providers/memory.py,sha256=oNOH8WZXVW8assDigIWZAWiwkxbpDiKupxA2RB6tQvQ,1010
|
18
18
|
solana_agent/interfaces/repositories/agent.py,sha256=r2MzVYOpEBVN00yqRxr3bUgWUgSwqoI1hRrdHhgFpFU,819
|
19
|
-
solana_agent/interfaces/services/agent.py,sha256=
|
20
|
-
solana_agent/interfaces/services/query.py,sha256=
|
19
|
+
solana_agent/interfaces/services/agent.py,sha256=V1v4NPwWdNNJhrVdiAUuHEqIpfrobKjJatSIWNa6mdQ,2155
|
20
|
+
solana_agent/interfaces/services/query.py,sha256=bspnm-CN6zjRWnlFnkl34qo0EIW5m2TQR53NTEWMaq4,1271
|
21
21
|
solana_agent/interfaces/services/routing.py,sha256=gohkt5f9uYDLpu4iDVDk9yj8js9P56R6QHSIDNylgwA,438
|
22
22
|
solana_agent/plugins/__init__.py,sha256=coZdgJKq1ExOaj6qB810i3rEhbjdVlrkN76ozt_Ojgo,193
|
23
23
|
solana_agent/plugins/manager.py,sha256=GWwhfMBn9THwVn7biOvVa25GLthCA1ilWIoDkt5hXNI,5084
|
@@ -28,10 +28,10 @@ solana_agent/repositories/__init__.py,sha256=fP83w83CGzXLnSdq-C5wbw9EhWTYtqE2lQT
|
|
28
28
|
solana_agent/repositories/agent.py,sha256=e1rnsQiigkKwJNLKro86a3b6TBiky3GMfmCRc5b_jPw,3187
|
29
29
|
solana_agent/repositories/memory.py,sha256=GABGwaz00thjviHewLvb18NeKE8dkBROxy_stsiiWrE,4722
|
30
30
|
solana_agent/services/__init__.py,sha256=ab_NXJmwYUCmCrCzuTlZ47bJZINW0Y0F5jfQ9OovidU,163
|
31
|
-
solana_agent/services/agent.py,sha256=
|
32
|
-
solana_agent/services/query.py,sha256=
|
31
|
+
solana_agent/services/agent.py,sha256=5BCzy8h37HAzvxiuOanu-RM_ARxwIdOUNie8xPLGDj0,14219
|
32
|
+
solana_agent/services/query.py,sha256=N0RMcQm7o4B0MGrbFFrZ_Ar5z9r-UUDgn1xzgoxQtqg,10758
|
33
33
|
solana_agent/services/routing.py,sha256=TPJ2Pas4acE93QzMEV6ZP670OtTNrVEPa76fz6urEV4,4996
|
34
|
-
solana_agent-
|
35
|
-
solana_agent-
|
36
|
-
solana_agent-
|
37
|
-
solana_agent-
|
34
|
+
solana_agent-17.0.1.dist-info/LICENSE,sha256=BnSRc-NSFuyF2s496l_4EyrwAP6YimvxWcjPiJ0J7g4,1057
|
35
|
+
solana_agent-17.0.1.dist-info/METADATA,sha256=-KgZSOm4jpeQsuy8tCQs6lGFqfwJjTsqf3tZRLs_OwI,4948
|
36
|
+
solana_agent-17.0.1.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
|
37
|
+
solana_agent-17.0.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|