Skip to content

Commit ca65e90

Browse files
authored
Add files via upload
1 parent 0c16301 commit ca65e90

File tree

1 file changed

+118
-0
lines changed

1 file changed

+118
-0
lines changed
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
```markdown
2+
# ExternalToolService
3+
4+
El servicio `ExternalToolService` es una aplicación basada en FastAPI que proporciona una interfaz para interactuar con herramientas externas como servicios de inteligencia artificial, procesamiento de pagos y almacenamiento en la nube.
5+
6+
## Estructura del Proyecto
7+
8+
```
9+
ExternalToolService/
10+
├── app/
11+
│ ├── app/
12+
│ │ ├── adapters/
13+
│ │ │ ├── __init__.py
14+
│ │ │ ├── ai.py
15+
│ │ │ ├── manager.py
16+
│ │ │ ├── payment.py
17+
│ │ │ ├── storage.py
18+
│ │ ├── main.py
19+
```
20+
21+
### Archivos Principales
22+
23+
#### `main.py`
24+
25+
Este archivo define las rutas principales de la API y gestiona la autenticación básica.
26+
27+
- **Rutas**:
28+
- `POST /analyze`: Analiza datos utilizando un servicio de inteligencia artificial.
29+
- `POST /pay`: Procesa pagos utilizando un adaptador de pago.
30+
- `GET /storage-url`: Genera una URL de almacenamiento para un archivo.
31+
32+
- **Autenticación**:
33+
Utiliza autenticación básica con un usuario y contraseña predeterminados (`admin` y `123`).
34+
35+
#### `adapters/manager.py`
36+
37+
Define la clase base `ExternalTool` y el gestor `ExternalToolManager` para interactuar con herramientas externas.
38+
39+
- **Clases**:
40+
- `ExternalTool`: Clase abstracta que define el método `execute`.
41+
- `ExternalToolManager`: Clase que utiliza herramientas externas para ejecutar operaciones.
42+
43+
#### `adapters/ai.py`
44+
45+
Implementa el adaptador `AIServiceAdapter` para servicios de inteligencia artificial.
46+
47+
- **Método**:
48+
- `execute(data)`: Devuelve un resumen y un análisis de sentimiento del contenido proporcionado.
49+
50+
#### `adapters/payment.py`
51+
52+
Implementa el adaptador `PaymentAdapter` para procesamiento de pagos.
53+
54+
- **Método**:
55+
- `execute(data)`: Simula el procesamiento de un pago y devuelve el estado.
56+
57+
#### `adapters/storage.py`
58+
59+
Implementa el adaptador `CloudStorageAdapter` para generar URLs de almacenamiento.
60+
61+
- **Método**:
62+
- `execute(data)`: Genera una URL simulada para un archivo.
63+
64+
## Ejemplo de Uso
65+
66+
### Análisis de Datos
67+
68+
```bash
69+
curl -X POST "http://localhost:8000/analyze" \
70+
-H "Authorization: Basic $(echo -n 'admin:123' | base64)" \
71+
-H "Content-Type: application/json" \
72+
-d '{"content": "Este es un ejemplo de texto para analizar."}'
73+
```
74+
75+
### Procesamiento de Pagos
76+
77+
```bash
78+
curl -X POST "http://localhost:8000/pay" \
79+
-H "Authorization: Basic $(echo -n 'admin:123' | base64)" \
80+
-H "Content-Type: application/json" \
81+
-d '{"amount": 100}'
82+
```
83+
84+
### Generación de URL de Almacenamiento
85+
86+
```bash
87+
curl -X GET "http://localhost:8000/storage-url?filename=example.txt" \
88+
-H "Authorization: Basic $(echo -n 'admin:123' | base64)"
89+
```
90+
91+
## Requisitos
92+
93+
- **Python**: 3.8 o superior
94+
- **Dependencias**: FastAPI, Uvicorn
95+
96+
## Instalación
97+
98+
1. Clona el repositorio:
99+
```bash
100+
git clone <url-del-repositorio>
101+
cd ExternalToolService/app
102+
```
103+
104+
2. Instala las dependencias:
105+
```bash
106+
pip install -r requirements.txt
107+
```
108+
109+
3. Ejecuta el servidor:
110+
```bash
111+
uvicorn main:app --reload
112+
```
113+
114+
## Notas
115+
116+
- Este servicio utiliza autenticación básica para proteger las rutas.
117+
- Los adaptadores implementan lógica simulada y pueden extenderse para integrarse con servicios reales.
118+
```

0 commit comments

Comments
 (0)