parent
4979e6947a
commit
5e4a600d47
@ -0,0 +1,37 @@
|
|||||||
|
# Swarms Tools Example with HTX + CoinGecko
|
||||||
|
|
||||||
|
- `pip3 install swarms swarms-tools`
|
||||||
|
- Add `OPENAI_API_KEY` to your `.env` file
|
||||||
|
|
||||||
|
```python
|
||||||
|
from swarms import Agent
|
||||||
|
from swarms.prompts.finance_agent_sys_prompt import (
|
||||||
|
FINANCIAL_AGENT_SYS_PROMPT,
|
||||||
|
)
|
||||||
|
from swarms_tools import (
|
||||||
|
coin_gecko_coin_api,
|
||||||
|
fetch_htx_data,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
# Initialize the agent
|
||||||
|
agent = Agent(
|
||||||
|
agent_name="Financial-Analysis-Agent",
|
||||||
|
agent_description="Personal finance advisor agent",
|
||||||
|
system_prompt=FINANCIAL_AGENT_SYS_PROMPT,
|
||||||
|
max_loops=1,
|
||||||
|
model_name="gpt-4o",
|
||||||
|
dynamic_temperature_enabled=True,
|
||||||
|
user_name="swarms_corp",
|
||||||
|
return_step_meta=False,
|
||||||
|
output_type="str", # "json", "dict", "csv" OR "string" "yaml" and
|
||||||
|
auto_generate_prompt=False, # Auto generate prompt for the agent based on name, description, and system prompt, task
|
||||||
|
max_tokens=4000, # max output tokens
|
||||||
|
saved_state_path="agent_00.json",
|
||||||
|
interactive=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
agent.run(
|
||||||
|
f"Analyze the $swarms token on HTX with data: {fetch_htx_data('swarms')}. Additionally, consider the following CoinGecko data: {coin_gecko_coin_api('swarms')}"
|
||||||
|
)
|
||||||
|
```
|
@ -0,0 +1,239 @@
|
|||||||
|
# Swarms Tools
|
||||||
|
|
||||||
|
|
||||||
|
Welcome to **Swarms Tools**, the ultimate package for integrating **cutting-edge APIs** into Python functions with seamless multi-agent system compatibility. Designed for enterprises at the forefront of innovation, **Swarms Tools** is your key to simplifying complexity and unlocking operational excellence.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🚀 Features
|
||||||
|
|
||||||
|
- **Unified API Integration**: Ready-to-use Python functions for financial data, social media, IoT, and more.
|
||||||
|
- **Enterprise-Grade Design**: Comprehensive type hints, structured outputs, and robust documentation.
|
||||||
|
- **Agent-Ready Framework**: Optimized for seamless integration into Swarms' multi-agent orchestration systems.
|
||||||
|
- **Expandable Architecture**: Easily extend functionality with a standardized schema for new tools.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔧 Installation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pip3 install -U swarms-tools
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📂 Directory Structure
|
||||||
|
|
||||||
|
```plaintext
|
||||||
|
swarms-tools/
|
||||||
|
├── swarms_tools/
|
||||||
|
│ ├── finance/
|
||||||
|
│ │ ├── htx_tool.py
|
||||||
|
│ │ ├── eodh_api.py
|
||||||
|
│ │ └── coingecko_tool.py
|
||||||
|
│ ├── social_media/
|
||||||
|
│ │ ├── telegram_tool.py
|
||||||
|
│ ├── utilities/
|
||||||
|
│ │ └── logging.py
|
||||||
|
├── tests/
|
||||||
|
│ ├── test_financial_data.py
|
||||||
|
│ └── test_social_media.py
|
||||||
|
└── README.md
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💼 Use Cases
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Finance
|
||||||
|
|
||||||
|
Explore our diverse range of financial tools, designed to streamline your operations. If you need a tool not listed, feel free to submit an issue or accelerate integration by contributing a pull request with your tool of choice.
|
||||||
|
|
||||||
|
| **Tool Name** | **Function** | **Description** |
|
||||||
|
|---------------------------|--------------------------|---------------------------------------------------------------------------------|
|
||||||
|
| `fetch_stock_news` | `fetch_stock_news` | Fetches the latest stock news and updates. |
|
||||||
|
| `fetch_htx_data` | `fetch_htx_data` | Retrieves financial data from the HTX platform. |
|
||||||
|
| `yahoo_finance_api` | `yahoo_finance_api` | Fetches comprehensive stock data from Yahoo Finance, including prices and trends. |
|
||||||
|
| `coin_gecko_coin_api` | `coin_gecko_coin_api` | Fetches cryptocurrency data from CoinGecko, including market and price information. |
|
||||||
|
| `helius_api_tool` | `helius_api_tool` | Retrieves blockchain account, transaction, or token data using the Helius API. |
|
||||||
|
| `okx_api_tool` | `okx_api_tool` | Fetches detailed cryptocurrency data for coins from the OKX exchange. |
|
||||||
|
|
||||||
|
|
||||||
|
### Financial Data Retrieval
|
||||||
|
Enable precise and actionable financial insights:
|
||||||
|
|
||||||
|
#### Example 1: Fetch Historical Data
|
||||||
|
```python
|
||||||
|
from swarms_tools import fetch_htx_data
|
||||||
|
|
||||||
|
# Fetch historical trading data for "Swarms Corporation"
|
||||||
|
response = fetch_htx_data("swarms")
|
||||||
|
print(response)
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Example 2: Stock News Analysis
|
||||||
|
```python
|
||||||
|
from swarms_tools import fetch_stock_news
|
||||||
|
|
||||||
|
# Retrieve latest stock news for Apple
|
||||||
|
news = fetch_stock_news("AAPL")
|
||||||
|
print(news)
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Example 3: Cryptocurrency Metrics
|
||||||
|
```python
|
||||||
|
from swarms_tools import coin_gecko_coin_api
|
||||||
|
|
||||||
|
# Fetch live data for Bitcoin
|
||||||
|
crypto_data = coin_gecko_coin_api("bitcoin")
|
||||||
|
print(crypto_data)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Social Media Automation
|
||||||
|
Streamline communication and engagement:
|
||||||
|
|
||||||
|
#### Example: Telegram Bot Messaging
|
||||||
|
```python
|
||||||
|
from swarms_tools import telegram_dm_or_tag_api
|
||||||
|
|
||||||
|
def send_alert(response: str):
|
||||||
|
telegram_dm_or_tag_api(response)
|
||||||
|
|
||||||
|
# Send a message to a user or group
|
||||||
|
send_alert("Mission-critical update from Swarms.")
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Dex Screener
|
||||||
|
|
||||||
|
This is a tool that allows you to fetch data from the Dex Screener API. It supports multiple chains and multiple tokens.
|
||||||
|
|
||||||
|
```python
|
||||||
|
from swarms_tools.finance.dex_screener import (
|
||||||
|
fetch_latest_token_boosts,
|
||||||
|
fetch_dex_screener_profiles,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
fetch_dex_screener_profiles()
|
||||||
|
fetch_latest_token_boosts()
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
## Structs
|
||||||
|
The tool chainer enables the execution of multiple tools in a sequence, allowing for the aggregation of their results in either a parallel or sequential manner.
|
||||||
|
|
||||||
|
```python
|
||||||
|
# Example usage
|
||||||
|
from loguru import logger
|
||||||
|
|
||||||
|
from swarms_tools.structs import tool_chainer
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
logger.add("tool_chainer.log", rotation="500 MB", level="INFO")
|
||||||
|
|
||||||
|
# Example tools
|
||||||
|
def tool1():
|
||||||
|
return "Tool1 Result"
|
||||||
|
|
||||||
|
def tool2():
|
||||||
|
return "Tool2 Result"
|
||||||
|
|
||||||
|
# def tool3():
|
||||||
|
# raise ValueError("Simulated error in Tool3")
|
||||||
|
|
||||||
|
tools = [tool1, tool2]
|
||||||
|
|
||||||
|
# Parallel execution
|
||||||
|
parallel_results = tool_chainer(tools, parallel=True)
|
||||||
|
print("Parallel Results:", parallel_results)
|
||||||
|
|
||||||
|
# Sequential execution
|
||||||
|
# sequential_results = tool_chainer(tools, parallel=False)
|
||||||
|
# print("Sequential Results:", sequential_results)
|
||||||
|
|
||||||
|
```
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🧩 Standardized Schema
|
||||||
|
|
||||||
|
Every tool in **Swarms Tools** adheres to a strict schema for maintainability and interoperability:
|
||||||
|
|
||||||
|
### Schema Template
|
||||||
|
|
||||||
|
1. **Functionality**:
|
||||||
|
- Encapsulate API logic into a modular, reusable function.
|
||||||
|
|
||||||
|
2. **Typing**:
|
||||||
|
- Leverage Python type hints for input validation and clarity.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
```python
|
||||||
|
def fetch_data(symbol: str, date_range: str) -> str:
|
||||||
|
"""
|
||||||
|
Fetch financial data for a given symbol and date range.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
symbol (str): Ticker symbol of the asset.
|
||||||
|
date_range (str): Timeframe for the data (e.g., '1d', '1m', '1y').
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
dict: A dictionary containing financial metrics.
|
||||||
|
"""
|
||||||
|
pass
|
||||||
|
```
|
||||||
|
|
||||||
|
3. **Documentation**:
|
||||||
|
- Include detailed docstrings with parameter explanations and usage examples.
|
||||||
|
|
||||||
|
4. **Output Standardization**:
|
||||||
|
- Ensure consistent outputs (e.g., strings) for easy downstream agent integration.
|
||||||
|
|
||||||
|
5. **API-Key Management**:
|
||||||
|
- All API keys must be fetched with `os.getenv("YOUR_KEY")`
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📖 Documentation
|
||||||
|
|
||||||
|
Comprehensive documentation is available to guide developers and enterprises. Visit our [official docs](https://docs.swarms.world) for detailed API references, usage examples, and best practices.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🛠 Contributing
|
||||||
|
|
||||||
|
We welcome contributions from the global developer community. To contribute:
|
||||||
|
|
||||||
|
1. **Fork the Repository**: Start by forking the repository.
|
||||||
|
2. **Create a Feature Branch**: Use a descriptive branch name: `feature/add-new-tool`.
|
||||||
|
3. **Commit Your Changes**: Write meaningful commit messages.
|
||||||
|
4. **Submit a Pull Request**: Open a pull request for review.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🛡️ License
|
||||||
|
|
||||||
|
This project is licensed under the **MIT License**. See the [LICENSE](LICENSE) file for details.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🌠 Join the Future
|
||||||
|
|
||||||
|
Explore the limitless possibilities of agent-based systems. Together, we can build a smarter, faster, and more interconnected world.
|
||||||
|
|
||||||
|
**Visit us:** [Swarms Corporation](https://swarms.ai)
|
||||||
|
**Follow us:** [Twitter](https://twitter.com/swarms_corp)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**"The future belongs to those who dare to automate it."**
|
||||||
|
**— The Swarms Corporation**
|
||||||
|
|
@ -0,0 +1,30 @@
|
|||||||
|
from swarms import Agent
|
||||||
|
from swarms.prompts.finance_agent_sys_prompt import (
|
||||||
|
FINANCIAL_AGENT_SYS_PROMPT,
|
||||||
|
)
|
||||||
|
from swarms_tools import (
|
||||||
|
coin_gecko_coin_api,
|
||||||
|
fetch_htx_data,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
# Initialize the agent
|
||||||
|
agent = Agent(
|
||||||
|
agent_name="Financial-Analysis-Agent",
|
||||||
|
agent_description="Personal finance advisor agent",
|
||||||
|
system_prompt=FINANCIAL_AGENT_SYS_PROMPT,
|
||||||
|
max_loops=1,
|
||||||
|
model_name="gpt-4o",
|
||||||
|
dynamic_temperature_enabled=True,
|
||||||
|
user_name="swarms_corp",
|
||||||
|
return_step_meta=False,
|
||||||
|
output_type="str", # "json", "dict", "csv" OR "string" "yaml" and
|
||||||
|
auto_generate_prompt=False, # Auto generate prompt for the agent based on name, description, and system prompt, task
|
||||||
|
max_tokens=4000, # max output tokens
|
||||||
|
saved_state_path="agent_00.json",
|
||||||
|
interactive=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
agent.run(
|
||||||
|
f"Analyze the $swarms token on HTX with data: {fetch_htx_data('swarms')}. Additionally, consider the following CoinGecko data: {coin_gecko_coin_api('swarms')}"
|
||||||
|
)
|
Loading…
Reference in new issue