solana-agent 27.2.0__py3-none-any.whl → 27.3.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/openai_adapter.py +59 -5
- solana_agent/adapters/pinecone_adapter.py +496 -0
- solana_agent/client/solana_agent.py +145 -1
- solana_agent/factories/agent_factory.py +73 -7
- solana_agent/interfaces/client/client.py +75 -5
- solana_agent/interfaces/providers/llm.py +20 -0
- solana_agent/interfaces/providers/vector_storage.py +59 -0
- solana_agent/interfaces/services/knowledge_base.py +86 -0
- solana_agent/services/knowledge_base.py +771 -0
- solana_agent/services/query.py +33 -2
- {solana_agent-27.2.0.dist-info → solana_agent-27.3.1.dist-info}/METADATA +177 -15
- {solana_agent-27.2.0.dist-info → solana_agent-27.3.1.dist-info}/RECORD +14 -10
- {solana_agent-27.2.0.dist-info → solana_agent-27.3.1.dist-info}/LICENSE +0 -0
- {solana_agent-27.2.0.dist-info → solana_agent-27.3.1.dist-info}/WHEEL +0 -0
solana_agent/services/query.py
CHANGED
@@ -11,6 +11,7 @@ from solana_agent.interfaces.services.query import QueryService as QueryServiceI
|
|
11
11
|
from solana_agent.interfaces.services.routing import RoutingService as RoutingServiceInterface
|
12
12
|
from solana_agent.services.agent import AgentService
|
13
13
|
from solana_agent.services.routing import RoutingService
|
14
|
+
from solana_agent.services.knowledge_base import KnowledgeBaseService
|
14
15
|
from solana_agent.interfaces.providers.memory import MemoryProvider
|
15
16
|
|
16
17
|
|
@@ -22,6 +23,8 @@ class QueryService(QueryServiceInterface):
|
|
22
23
|
agent_service: AgentService,
|
23
24
|
routing_service: RoutingService,
|
24
25
|
memory_provider: Optional[MemoryProvider] = None,
|
26
|
+
knowledge_base: Optional[KnowledgeBaseService] = None,
|
27
|
+
kb_results_count: int = 3,
|
25
28
|
):
|
26
29
|
"""Initialize the query service.
|
27
30
|
|
@@ -33,6 +36,8 @@ class QueryService(QueryServiceInterface):
|
|
33
36
|
self.agent_service = agent_service
|
34
37
|
self.routing_service = routing_service
|
35
38
|
self.memory_provider = memory_provider
|
39
|
+
self.knowledge_base = knowledge_base
|
40
|
+
self.kb_results_count = kb_results_count
|
36
41
|
|
37
42
|
async def process(
|
38
43
|
self,
|
@@ -99,12 +104,38 @@ class QueryService(QueryServiceInterface):
|
|
99
104
|
if self.memory_provider:
|
100
105
|
memory_context = await self.memory_provider.retrieve(user_id)
|
101
106
|
|
107
|
+
# Retrieve relevant knowledge from the KB
|
108
|
+
kb_context = ""
|
109
|
+
if self.knowledge_base:
|
110
|
+
try:
|
111
|
+
kb_results = await self.knowledge_base.query(
|
112
|
+
query_text=user_text,
|
113
|
+
top_k=self.kb_results_count,
|
114
|
+
include_content=True,
|
115
|
+
include_metadata=False
|
116
|
+
)
|
117
|
+
|
118
|
+
if kb_results:
|
119
|
+
kb_context = "**KNOWLEDGE BASE (CRITICAL: MAKE THIS INFORMATION THE TOP PRIORITY):**\n"
|
120
|
+
for i, result in enumerate(kb_results, 1):
|
121
|
+
content = result.get("content", "").strip()
|
122
|
+
kb_context += f"[{i}] {content}\n\n"
|
123
|
+
except Exception as e:
|
124
|
+
print(f"Error retrieving knowledge: {e}")
|
125
|
+
|
102
126
|
# Route query to appropriate agent
|
103
127
|
if router:
|
104
128
|
agent_name = await router.route_query(user_text)
|
105
129
|
else:
|
106
130
|
agent_name = await self.routing_service.route_query(user_text)
|
107
131
|
|
132
|
+
# Combine context from memory and knowledge base
|
133
|
+
combined_context = ""
|
134
|
+
if memory_context:
|
135
|
+
combined_context += f"CONVERSATION HISTORY:\n{memory_context}\n\n"
|
136
|
+
if kb_context:
|
137
|
+
combined_context += f"{kb_context}\n"
|
138
|
+
|
108
139
|
print(f"Routed to agent: {agent_name}")
|
109
140
|
|
110
141
|
# Generate response
|
@@ -113,7 +144,7 @@ class QueryService(QueryServiceInterface):
|
|
113
144
|
agent_name=agent_name,
|
114
145
|
user_id=user_id,
|
115
146
|
query=user_text,
|
116
|
-
memory_context=
|
147
|
+
memory_context=combined_context,
|
117
148
|
output_format="audio",
|
118
149
|
audio_voice=audio_voice,
|
119
150
|
audio_output_format=audio_output_format,
|
@@ -134,7 +165,7 @@ class QueryService(QueryServiceInterface):
|
|
134
165
|
agent_name=agent_name,
|
135
166
|
user_id=user_id,
|
136
167
|
query=user_text,
|
137
|
-
memory_context=
|
168
|
+
memory_context=combined_context,
|
138
169
|
output_format="text",
|
139
170
|
prompt=prompt,
|
140
171
|
):
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: solana-agent
|
3
|
-
Version: 27.
|
3
|
+
Version: 27.3.1
|
4
4
|
Summary: Agentic IQ
|
5
5
|
License: MIT
|
6
6
|
Keywords: ai,openai,ai agents,agi
|
@@ -15,9 +15,13 @@ Classifier: Programming Language :: Python :: 3.12
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.13
|
16
16
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
17
17
|
Requires-Dist: instructor (>=1.7.9,<2.0.0)
|
18
|
+
Requires-Dist: llama-index-core (>=0.12.30,<0.13.0)
|
19
|
+
Requires-Dist: llama-index-embeddings-openai (>=0.3.1,<0.4.0)
|
18
20
|
Requires-Dist: openai (>=1.74.0,<2.0.0)
|
19
|
-
Requires-Dist:
|
21
|
+
Requires-Dist: pinecone (>=6.0.2,<7.0.0)
|
22
|
+
Requires-Dist: pydantic (>=2)
|
20
23
|
Requires-Dist: pymongo (>=4.12.0,<5.0.0)
|
24
|
+
Requires-Dist: pypdf (>=5.4.0,<6.0.0)
|
21
25
|
Requires-Dist: zep-cloud (>=2.10.1,<3.0.0)
|
22
26
|
Project-URL: Documentation, https://docs.solana-agent.com
|
23
27
|
Project-URL: Repository, https://github.com/truemagic-coder/solana-agent
|
@@ -43,6 +47,7 @@ Build your AI business in three lines of code!
|
|
43
47
|
## Why?
|
44
48
|
* Three lines of code setup
|
45
49
|
* Fast Responses
|
50
|
+
* Solana Integration
|
46
51
|
* Multi-Agent Swarm
|
47
52
|
* Multi-Modal Streaming (Text & Audio)
|
48
53
|
* Conversational Memory & History
|
@@ -51,6 +56,7 @@ Build your AI business in three lines of code!
|
|
51
56
|
* Business Alignment
|
52
57
|
* Extensible Tooling
|
53
58
|
* Simple Business Definition
|
59
|
+
* Knowledge Base with PDF support
|
54
60
|
* Tested & Secure
|
55
61
|
* Built in Python
|
56
62
|
* Powers [CometHeart](https://cometheart.com) & [WalletBubbles](https://walletbubbles.com)
|
@@ -59,6 +65,7 @@ Build your AI business in three lines of code!
|
|
59
65
|
|
60
66
|
* Easy three lines of code setup
|
61
67
|
* Fast AI responses
|
68
|
+
* Solana Integration via [AgentiPy](https://github.com/niceberginc/agentipy)
|
62
69
|
* Designed for a multi-agent swarm
|
63
70
|
* Seamless text and audio streaming with real-time multi-modal processing
|
64
71
|
* Configurable audio voice characteristics via prompting
|
@@ -70,6 +77,7 @@ Build your AI business in three lines of code!
|
|
70
77
|
* Powerful tool integration using standard Python packages and/or inline tools
|
71
78
|
* Assigned tools are utilized by agents automatically and effectively
|
72
79
|
* Simple business definition using JSON
|
80
|
+
* Integrated Knowledge Base with semantic search and automatic PDF chunking
|
73
81
|
|
74
82
|
## Stack
|
75
83
|
|
@@ -79,15 +87,17 @@ Build your AI business in three lines of code!
|
|
79
87
|
* [OpenAI](https://openai.com), [Google](https://ai.google.dev), [xAI](https://x.ai) - LLM Providers
|
80
88
|
* [MongoDB](https://mongodb.com) - Conversational History (optional)
|
81
89
|
* [Zep Cloud](https://getzep.com) - Conversational Memory (optional)
|
90
|
+
* [Pinecone](https://pinecone.io) - Knowledge Base (optional)
|
82
91
|
|
83
92
|
### LLMs
|
84
93
|
|
85
94
|
* [gpt-4.1-mini](https://platform.openai.com/docs/models/gpt-4.1-mini) (agent)
|
86
95
|
* [gpt-4.1-nano](https://platform.openai.com/docs/models/gpt-4.1-nano) (router)
|
87
|
-
* [
|
88
|
-
* [grok-3-mini-fast-beta](https://docs.x.ai/docs/models#models-and-pricing) (optional)
|
96
|
+
* [text-embedding-3-large](https://platform.openai.com/docs/models/text-embedding-3-large) or [text-embedding-3-small](https://platform.openai.com/docs/models/text-embedding-3-small) (embedding)
|
89
97
|
* [tts-1](https://platform.openai.com/docs/models/tts-1) (audio TTS)
|
90
98
|
* [gpt-4o-mini-transcribe](https://platform.openai.com/docs/models/gpt-4o-mini-transcribe) (audio transcription)
|
99
|
+
* [gemini-2.0-flash](https://ai.google.dev/gemini-api/docs/models#gemini-2.0-flash) (optional)
|
100
|
+
* [grok-3-mini-fast-beta](https://docs.x.ai/docs/models#models-and-pricing) (optional)
|
91
101
|
|
92
102
|
## Installation
|
93
103
|
|
@@ -196,7 +206,7 @@ config = {
|
|
196
206
|
|
197
207
|
solana_agent = SolanaAgent(config=config)
|
198
208
|
|
199
|
-
audio_content = audio_file.read()
|
209
|
+
audio_content = await audio_file.read()
|
200
210
|
|
201
211
|
async for response in solana_agent.process("user123", audio_content, output_format="audio", audio_voice="nova", audio_input_format="webm", audio_output_format="aac"):
|
202
212
|
print(response, end="")
|
@@ -256,7 +266,7 @@ config = {
|
|
256
266
|
|
257
267
|
solana_agent = SolanaAgent(config=config)
|
258
268
|
|
259
|
-
audio_content = audio_file.read()
|
269
|
+
audio_content = await audio_file.read()
|
260
270
|
|
261
271
|
async for response in solana_agent.process("user123", audio_content, audio_input_format="aac"):
|
262
272
|
print(response, end="")
|
@@ -327,6 +337,114 @@ config = {
|
|
327
337
|
}
|
328
338
|
```
|
329
339
|
|
340
|
+
### Knowledge Base
|
341
|
+
|
342
|
+
The Knowledge Base (KB) is meant to store text values and/or small PDFs.
|
343
|
+
|
344
|
+
```python
|
345
|
+
config = {
|
346
|
+
"knowledge_base": {
|
347
|
+
"pinecone": {
|
348
|
+
"api_key": "your-pinecone-api-key",
|
349
|
+
"index_name": "your-pinecone-index-name",
|
350
|
+
}
|
351
|
+
},
|
352
|
+
"mongo": {
|
353
|
+
"connection_string": "your-mongo-connection-string",
|
354
|
+
"database": "your-database-name"
|
355
|
+
},
|
356
|
+
}
|
357
|
+
```
|
358
|
+
|
359
|
+
#### Example for KB (text)
|
360
|
+
|
361
|
+
```python
|
362
|
+
from solana_agent import SolanaAgent
|
363
|
+
|
364
|
+
config = {
|
365
|
+
"openai": {
|
366
|
+
"api_key": "your-openai-api-key",
|
367
|
+
},
|
368
|
+
"knowledge_base": {
|
369
|
+
"pinecone": {
|
370
|
+
"api_key": "your-pinecone-api-key",
|
371
|
+
"index_name": "your-pinecone-index-name",
|
372
|
+
}
|
373
|
+
},
|
374
|
+
"mongo": {
|
375
|
+
"connection_string": "your-mongo-connection-string",
|
376
|
+
"database": "your-database-name"
|
377
|
+
},
|
378
|
+
"agents": [
|
379
|
+
{
|
380
|
+
"name": "kb_expert",
|
381
|
+
"instructions": "You answer questions based on the provided knowledge base documents.",
|
382
|
+
"specialization": "Company Knowledge",
|
383
|
+
}
|
384
|
+
]
|
385
|
+
}
|
386
|
+
|
387
|
+
solana_agent = SolanaAgent(config=config)
|
388
|
+
|
389
|
+
doc_text = "Solana Agent is a Python framework for building multi-agent AI systems."
|
390
|
+
doc_metadata = {
|
391
|
+
"source": "internal_docs",
|
392
|
+
"version": "1.0",
|
393
|
+
"tags": ["framework", "python", "ai"]
|
394
|
+
}
|
395
|
+
await solana_agent.kb_add_document(text=doc_text, metadata=doc_metadata)
|
396
|
+
|
397
|
+
async for response in solana_agent.process("user123", "What is Solana Agent?"):
|
398
|
+
print(response, end="")
|
399
|
+
```
|
400
|
+
|
401
|
+
#### Example for KB (pdf)
|
402
|
+
|
403
|
+
```python
|
404
|
+
from solana_agent import SolanaAgent
|
405
|
+
|
406
|
+
config = {
|
407
|
+
"openai": {
|
408
|
+
"api_key": "your-openai-api-key",
|
409
|
+
},
|
410
|
+
"knowledge_base": {
|
411
|
+
"pinecone": {
|
412
|
+
"api_key": "your-pinecone-api-key",
|
413
|
+
"index_name": "your-pinecone-index-name",
|
414
|
+
}
|
415
|
+
},
|
416
|
+
"mongo": {
|
417
|
+
"connection_string": "your-mongo-connection-string",
|
418
|
+
"database": "your-database-name"
|
419
|
+
},
|
420
|
+
"agents": [
|
421
|
+
{
|
422
|
+
"name": "kb_expert",
|
423
|
+
"instructions": "You answer questions based on the provided knowledge base documents.",
|
424
|
+
"specialization": "Company Knowledge",
|
425
|
+
}
|
426
|
+
]
|
427
|
+
}
|
428
|
+
|
429
|
+
solana_agent = SolanaAgent(config=config)
|
430
|
+
|
431
|
+
pdf_bytes = await pdf_file.read()
|
432
|
+
|
433
|
+
pdf_metadata = {
|
434
|
+
"source": "annual_report_2024.pdf",
|
435
|
+
"year": 2024,
|
436
|
+
"tags": ["finance", "report"]
|
437
|
+
}
|
438
|
+
|
439
|
+
await solana_agent.kb_add_pdf_document(
|
440
|
+
pdf_data=pdf_bytes,
|
441
|
+
metadata=pdf_metadata,
|
442
|
+
)
|
443
|
+
|
444
|
+
async for response in solana_agent.process("user123", "Summarize the annual report for 2024."):
|
445
|
+
print(response, end="")
|
446
|
+
```
|
447
|
+
|
330
448
|
## Tools
|
331
449
|
|
332
450
|
Tools can be used from plugins like Solana Agent Kit (sakit) or via inline tools. Tools available via plugins integrate automatically with Solana Agent.
|
@@ -336,7 +454,7 @@ Tools can be used from plugins like Solana Agent Kit (sakit) or via inline tools
|
|
336
454
|
* Solana Agent doesn't use OpenAI function calling (tools) as they don't support async functions
|
337
455
|
* Solana Agent tools are async functions
|
338
456
|
|
339
|
-
### Internet Search
|
457
|
+
### Internet Search
|
340
458
|
|
341
459
|
`pip install sakit`
|
342
460
|
|
@@ -366,10 +484,58 @@ config = {
|
|
366
484
|
}
|
367
485
|
],
|
368
486
|
}
|
487
|
+
```
|
488
|
+
|
489
|
+
### Solana Actions
|
490
|
+
|
491
|
+
`pip install sakit`
|
492
|
+
|
493
|
+
```python
|
494
|
+
config = {
|
495
|
+
"tools": {
|
496
|
+
"solana": {
|
497
|
+
# Core Solana Settings
|
498
|
+
"private_key": "YOUR_SOLANA_WALLET_PRIVATE_KEY", # Required (unless generate_wallet=True): Your wallet's private key (base58 encoded string).
|
499
|
+
"rpc_url": "https://api.mainnet-beta.solana.com", # Optional: Defaults to Solana mainnet RPC.
|
500
|
+
"generate_wallet": False, # Optional: If True, ignores private_key and generates a new wallet. Defaults to False.
|
501
|
+
|
502
|
+
# Optional RPC/Service API Keys & URLs
|
503
|
+
"helius_api_key": "YOUR_HELIUS_API_KEY", # Optional: Helius API key for enhanced data/RPC.
|
504
|
+
"helius_rpc_url": "YOUR_HELIUS_RPC_URL", # Optional: Specific Helius RPC URL.
|
505
|
+
"quicknode_rpc_url": "YOUR_QUICKNODE_RPC_URL", # Optional: QuickNode RPC URL.
|
506
|
+
"jito_block_engine_url": "YOUR_JITO_BLOCK_ENGINE_URL", # Optional: Jito block engine URL for bundles.
|
507
|
+
"jito_uuid": "YOUR_JITO_UUID", # Optional: Jito authentication UUID.
|
508
|
+
|
509
|
+
# Optional Integration API Keys
|
510
|
+
"openai_api_key": "YOUR_OPENAI_API_KEY", # Optional: OpenAI API key (if needed by specific agentipy features).
|
511
|
+
"backpack_api_key": "YOUR_BACKPACK_API_KEY", # Optional: Backpack Exchange API key.
|
512
|
+
"backpack_api_secret": "YOUR_BACKPACK_API_SECRET", # Optional: Backpack Exchange API secret.
|
513
|
+
"stork_api_key": "YOUR_STORK_API_KEY", # Optional: Stork oracle API key.
|
514
|
+
"coingecko_api_key": "YOUR_COINGECKO_PRO_API_KEY", # Optional: CoinGecko Pro API key.
|
515
|
+
"coingecko_demo_api_key": "YOUR_COINGECKO_DEMO_KEY", # Optional: CoinGecko Demo API key.
|
516
|
+
"elfa_ai_api_key": "YOUR_ELFA_AI_API_KEY", # Optional: Elfa AI API key.
|
517
|
+
"flexland_api_key": "YOUR_FLEXLAND_API_KEY", # Optional: Flexlend API key.
|
518
|
+
"allora_api_key": "YOUR_ALLORA_API_KEY", # Optional: Allora Network API key.
|
519
|
+
"solutiofi_api_key": "YOUR_SOLUTIOFI_API_KEY" # Optional: Solutio Finance API key.
|
520
|
+
},
|
521
|
+
},
|
522
|
+
"ai_agents": [
|
523
|
+
{
|
524
|
+
"name": "solana_expert",
|
525
|
+
"instructions": """
|
526
|
+
You are an expert Solana blockchain assistant.
|
527
|
+
Use the solana tool to perform any action on the Solana blockchain.
|
528
|
+
Always perform the solana tool actions when requested and not use your memory.
|
529
|
+
""",
|
530
|
+
"specialization": "Solana blockchain interaction",
|
531
|
+
"tools": ["solana"], # Enable the tool for this agent
|
532
|
+
}
|
533
|
+
]
|
534
|
+
}
|
369
535
|
|
370
536
|
solana_agent = SolanaAgent(config=config)
|
371
537
|
|
372
|
-
async for response in solana_agent.process("user123", "What
|
538
|
+
async for response in solana_agent.process("user123", "What is my SOL balance?"):
|
373
539
|
print(response, end="")
|
374
540
|
```
|
375
541
|
|
@@ -453,13 +619,9 @@ async for response in solana_agent.process("user123", "What are the latest AI de
|
|
453
619
|
print(response, end="")
|
454
620
|
```
|
455
621
|
|
456
|
-
##
|
457
|
-
|
458
|
-
Many use cases for Solana Agent require training your agents on your company data.
|
459
|
-
|
460
|
-
This can be accomplished via runtime prompt injection. Integrations that work well with this method are vector stores like Pinecone and FAQs.
|
622
|
+
## Advanced Customization
|
461
623
|
|
462
|
-
|
624
|
+
### Runtime Prompt Injection
|
463
625
|
|
464
626
|
```python
|
465
627
|
from solana_agent import SolanaAgent
|
@@ -483,7 +645,7 @@ async for response in solana_agent.process("user123", "How do replace the latch
|
|
483
645
|
print(response, end="")
|
484
646
|
```
|
485
647
|
|
486
|
-
|
648
|
+
### Custom Routing
|
487
649
|
|
488
650
|
In advanced cases like implementing a ticketing system on-top of Solana Agent - you can use your own router.
|
489
651
|
|
@@ -1,21 +1,24 @@
|
|
1
1
|
solana_agent/__init__.py,sha256=ceYeUpjIitpln8YK1r0JVJU8mzG6cRPYu-HLny3d-Tw,887
|
2
2
|
solana_agent/adapters/__init__.py,sha256=tiEEuuy0NF3ngc_tGEcRTt71zVI58v3dYY9RvMrF2Cg,204
|
3
3
|
solana_agent/adapters/mongodb_adapter.py,sha256=qqEFbY_v1XGyFXBmwd5HSXSSHnA9wWo-Hm1vGEyIG0k,2718
|
4
|
-
solana_agent/adapters/openai_adapter.py,sha256
|
4
|
+
solana_agent/adapters/openai_adapter.py,sha256=-GS_ujZIF3OVq3LDWb30a4zEvUADvfECDo7GO1lQnqM,10997
|
5
|
+
solana_agent/adapters/pinecone_adapter.py,sha256=xn_353EoFYD8KCTckOOO4e0OKzukeBWpyhGUmDawURw,22591
|
5
6
|
solana_agent/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
6
|
-
solana_agent/client/solana_agent.py,sha256=
|
7
|
+
solana_agent/client/solana_agent.py,sha256=gARyoQkWStre3bwaTrR1AoAqdCpI3sw_p0hl6z6kkmA,9982
|
7
8
|
solana_agent/domains/__init__.py,sha256=HiC94wVPRy-QDJSSRywCRrhrFfTBeHjfi5z-QfZv46U,168
|
8
9
|
solana_agent/domains/agent.py,sha256=WTo-pEc66V6D_35cpDE-kTsw1SJM-dtylPZ7em5em7Q,2659
|
9
10
|
solana_agent/domains/routing.py,sha256=UDlgTjUoC9xIBVYu_dnf9-KG_bBgdEXAv_UtDOrYo0w,650
|
10
11
|
solana_agent/factories/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
11
|
-
solana_agent/factories/agent_factory.py,sha256=
|
12
|
+
solana_agent/factories/agent_factory.py,sha256=7O1WdWA9etV2Wk8DRJUf7qTiFD3GOhBN2T278sfRegM,11536
|
12
13
|
solana_agent/interfaces/__init__.py,sha256=IQs1WIM1FeKP1-kY2FEfyhol_dB-I-VAe2rD6jrVF6k,355
|
13
|
-
solana_agent/interfaces/client/client.py,sha256=
|
14
|
+
solana_agent/interfaces/client/client.py,sha256=rIZQXFenEpoSWUvZrCMNE-FWwYwZMCBvXSFC8vCWksg,3610
|
14
15
|
solana_agent/interfaces/plugins/plugins.py,sha256=T8HPBsekmzVwfU_Rizp-vtzAeYkMlKMYD7U9d0Wjq9c,3338
|
15
16
|
solana_agent/interfaces/providers/data_storage.py,sha256=NqGeFvAzhz9rr-liLPRNCGjooB2EIhe-EVsMmX__b0M,1658
|
16
|
-
solana_agent/interfaces/providers/llm.py,sha256=
|
17
|
+
solana_agent/interfaces/providers/llm.py,sha256=gcZeu8ErLoSmdXWKiBVZuNl31c0KIUhGwX3wPBD_xuI,2356
|
17
18
|
solana_agent/interfaces/providers/memory.py,sha256=oNOH8WZXVW8assDigIWZAWiwkxbpDiKupxA2RB6tQvQ,1010
|
19
|
+
solana_agent/interfaces/providers/vector_storage.py,sha256=zgdlzQuXCRREVSlB-g7QKKNjVoshSe2AFoAt4CHCAB0,1606
|
18
20
|
solana_agent/interfaces/services/agent.py,sha256=tVs2piqWVfO1JiRd58e29oP1GWgYuCzberRSfaFfH4M,1979
|
21
|
+
solana_agent/interfaces/services/knowledge_base.py,sha256=J4jGeWcxpKL3XpcrqdNuV1xyd5dj2d-hyAmx4AZ272w,2103
|
19
22
|
solana_agent/interfaces/services/query.py,sha256=yo2JZPJSy2iwxtkUlMz0emm9u_27xNgnrAFJRHQoulQ,1480
|
20
23
|
solana_agent/interfaces/services/routing.py,sha256=UzJC-z-Q9puTWPFGEo2_CAhIxuxP5IRnze7S66NSrsI,397
|
21
24
|
solana_agent/plugins/__init__.py,sha256=coZdgJKq1ExOaj6qB810i3rEhbjdVlrkN76ozt_Ojgo,193
|
@@ -27,9 +30,10 @@ solana_agent/repositories/__init__.py,sha256=fP83w83CGzXLnSdq-C5wbw9EhWTYtqE2lQT
|
|
27
30
|
solana_agent/repositories/memory.py,sha256=0S3oJIwrJgLokFZHc5nL6Wva_CLdnkwJKfAwmMcpa9E,7853
|
28
31
|
solana_agent/services/__init__.py,sha256=ab_NXJmwYUCmCrCzuTlZ47bJZINW0Y0F5jfQ9OovidU,163
|
29
32
|
solana_agent/services/agent.py,sha256=M1Aukr9xKGP9mL0jM_JqdRdWSqG4LxF0y0PDAzE_fpY,24608
|
30
|
-
solana_agent/services/
|
33
|
+
solana_agent/services/knowledge_base.py,sha256=bvoLZHSrfp6BhT8i4fKhxOkaUkYGCFedLp2uTzL-7xI,32379
|
34
|
+
solana_agent/services/query.py,sha256=TAPwgeQViCEg71q9u8oaqD0-W5sR1ipDlPAFkqGlRA8,12528
|
31
35
|
solana_agent/services/routing.py,sha256=hC5t98KZPHty9kMX27KcuxcmZlwjm0g59uMkR8n7k_w,6818
|
32
|
-
solana_agent-27.
|
33
|
-
solana_agent-27.
|
34
|
-
solana_agent-27.
|
35
|
-
solana_agent-27.
|
36
|
+
solana_agent-27.3.1.dist-info/LICENSE,sha256=BnSRc-NSFuyF2s496l_4EyrwAP6YimvxWcjPiJ0J7g4,1057
|
37
|
+
solana_agent-27.3.1.dist-info/METADATA,sha256=KYj2t-L1vxJjqViYGdL5JdIUcKBWl_SnZEzQ2y0VxR4,25019
|
38
|
+
solana_agent-27.3.1.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
|
39
|
+
solana_agent-27.3.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|