# iamex
Acceso unificado a múltiples modelos de inferencia AI
## Instalación
```bash
pip install iamex
```
## Modelos Disponibles
- **iam-adv-mex** - Modelo avanzado en español
- **IAM-lite** - Modelo ligero en español
- **IAM-advanced** - Modelo avanzado en español
- **iam-lite-mex** - Modelo ligero en español
## Uso Simple (Recomendado)
La forma más fácil de usar iamex es con la función `send_prompt`. Esta función se conecta directamente al endpoint real de iam-hub:
**Endpoint**: `https://iam-hub.iamexprogramers.site/api/v1/prompt-model`
```python
from iamex import send_prompt
# Uso básico - necesitas prompt, api_key y model
response = send_prompt(
prompt="Explica qué es la inteligencia artificial",
api_key="tu_api_key_aqui",
model="IAM-advanced"
)
# Con parámetros opcionales como max_tokens
response = send_prompt(
prompt="Explica qué es la inteligencia artificial",
api_key="tu_api_key_aqui",
model="IAM-advanced",
max_tokens=200 # Limitar respuesta a 200 tokens
)
print(response)
```
### Con Parámetros Adicionales
```python
# Con parámetros adicionales usando kwargs
response = send_prompt(
prompt="¿Cuáles son las ventajas de usar Python?",
api_key="tu_api_key_aqui",
model="IAM-advanced",
temperature=0.7,
max_tokens=200
)
```
### Con Mensaje del Sistema
```python
# Con mensaje del sistema
response = send_prompt(
prompt="Explica qué es una función lambda",
api_key="tu_api_key_aqui",
model="IAM-advanced",
system_prompt="Eres un asistente experto en programación Python."
)
```
## Uso Avanzado (Cliente)
Para casos más avanzados, puedes usar la clase `PromptClient`:
```python
from iamex import PromptClient
# Inicializar el cliente con tu API key
client = PromptClient(api_key="tu_api_key_aqui")
# Enviar un prompt (usa modelo por defecto 'IAM-advanced')
response = client.send_prompt(
prompt="Explica qué es la inteligencia artificial"
)
print(response)
```
## Uso con Modelo Específico
```python
# Especificar un modelo diferente
response = client.send_prompt(
prompt="Explica qué es Python",
modelo="IAM-advanced"
)
```
## Uso con Mensaje del Sistema
```python
# Incluir un mensaje del sistema para definir el comportamiento
system_prompt = "Eres un asistente experto en programación."
response = client.send_prompt(
prompt="Explica qué es una función",
modelo="IAM-advanced",
system_prompt=system_prompt
)
```
## Parámetros Adicionales
El método `send_prompt` acepta parámetros adicionales:
```python
response = client.send_prompt(
prompt="Tu prompt aquí",
modelo="IAM-advanced",
temperature=0.5, # Controla la creatividad (0.0 - 1.0)
max_tokens=1000, # Máximo número de tokens en la respuesta
top_p=0.9, # Controla la diversidad de la respuesta
top_k=50, # Limita las opciones de tokens
repetition_penalty=1.1, # Evita repeticiones
presence_penalty=0.1, # Penaliza tokens ya presentes
frequency_penalty=0.1, # Penaliza tokens frecuentes
stream=False # Respuesta en streaming
)
```
## Parámetros por Defecto
Si no especificas parámetros, se usan estos valores:
- `model`: `"IAM-advanced"`
- `temperature`: `0.3`
- `max_tokens`: `12000`
- `top_p`: `0.9`
- `top_k`: `50`
- `repetition_penalty`: `1.1`
- `presence_penalty`: `0.1`
- `frequency_penalty`: `0.1`
- `stream`: `False`
## Obtener Modelos Disponibles
```python
models = client.get_models()
print(models)
```
## Manejo de Errores
```python
try:
response = client.send_prompt(
prompt="Tu prompt aquí",
modelo="IAM-advanced"
)
except Exception as e:
print(f"Error: {e}")
```
## Autenticación
La librería ahora soporta autenticación por API key:
```python
# Con función simple
response = send_prompt("Tu prompt", "tu_api_key_aqui", "tu_modelo")
# Con cliente
client = PromptClient(api_key="tu_api_key_aqui")
```
**Nota**: Si no proporcionas una API key, la librería funcionará sin autenticación (solo para desarrollo y pruebas).
## Estructura del Payload
La función `send_prompt` envía automáticamente este payload a la API:
```json
{
"apikey": "tu_api_key_aqui",
"model": "tu_modelo",
"prompt": "tu_prompt"
}
```
**Parámetros obligatorios:**
- `apikey`: Tu clave de API para autenticación
- `model`: El modelo de IA a usar
- `prompt`: El texto de tu consulta
**Parámetros opcionales:**
- `system_prompt`: Instrucciones del sistema (si se proporciona)
- Cualquier otro parámetro que pases en `**kwargs`
## Desarrollo
### Instalación para Desarrollo
```bash
git clone https://github.com/IA-Mexico/iamex.git
cd iamex
pip install -e ".[dev]"
```
### Ejecutar Tests
```bash
pytest
```
### Formatear Código
```bash
black src/ tests/
```
## Licencia
Este proyecto está bajo la Licencia MIT. Ver el archivo [LICENSE](LICENSE) para más detalles.
## Soporte
- **Documentación**: [GitHub](https://github.com/IA-Mexico/iamex)
- **Issues**: [GitHub Issues](https://github.com/IA-Mexico/iamex/issues)
- **Email**: hostmaster@iamex.io
## Changelog
### v0.0.3
- ✅ **ACTUALIZADO**: Versión del paquete a 0.0.3
- ✅ **NUEVO**: Parámetro opcional `max_tokens` en función `send_prompt`
- ✅ **MEJORADO**: Control de longitud de respuestas del modelo
- ✅ **MEJORADO**: Endpoint real de iam-hub implementado
- ✅ **OPTIMIZADO**: Ejemplos actualizados con nueva funcionalidad
- ✅ **OPTIMIZADO**: Estructura de payload exacta para la API
- ✅ **DOCUMENTACIÓN**: Guías de uso para max_tokens
### v0.0.2
- ✅ **NUEVO**: Función simple `send_prompt(prompt, api_key, model)` para uso rápido
- ✅ **NUEVO**: Soporte completo para autenticación con API key
- ✅ **NUEVO**: Conexión directa al endpoint real de iam-hub
- ✅ **MEJORADO**: Estructura de payload exacta que espera la API
- ✅ **DOCUMENTACIÓN**: Ejemplos actualizados con la nueva funcionalidad
### v0.0.1
- Versión inicial
- Cliente básico para envío de prompts
- Endpoint fijo para el modelo actual
- Soporte para múltiples modelos de inferencia
- Cliente `PromptClient` para uso avanzado
- **Modelo por defecto**: `IAM-advanced`
- **Parámetros optimizados** según la API
Raw data
{
"_id": null,
"home_page": "https://github.com/IA-Mexico/iamex",
"name": "iamex",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "Inteligencia Artificial M\u00e9xico <hostmaster@iamex.io>",
"keywords": "ai, machine learning, inference, models, iamex, artificial intelligence",
"author": "Inteligencia Artificial M\u00e9xico",
"author_email": "Inteligencia Artificial M\u00e9xico <hostmaster@iamex.io>",
"download_url": "https://files.pythonhosted.org/packages/80/e6/451cffe78b2f6d9e49bc0674b82801f71e28383ffa0b531ba4aee3b5f246/iamex-0.0.3.tar.gz",
"platform": null,
"description": "# iamex\r\n\r\nAcceso unificado a m\u00faltiples modelos de inferencia AI\r\n\r\n## Instalaci\u00f3n\r\n\r\n```bash\r\npip install iamex\r\n```\r\n\r\n## Modelos Disponibles\r\n\r\n- **iam-adv-mex** - Modelo avanzado en espa\u00f1ol\r\n- **IAM-lite** - Modelo ligero en espa\u00f1ol\r\n- **IAM-advanced** - Modelo avanzado en espa\u00f1ol\r\n- **iam-lite-mex** - Modelo ligero en espa\u00f1ol\r\n\r\n## Uso Simple (Recomendado)\r\n\r\nLa forma m\u00e1s f\u00e1cil de usar iamex es con la funci\u00f3n `send_prompt`. Esta funci\u00f3n se conecta directamente al endpoint real de iam-hub:\r\n\r\n**Endpoint**: `https://iam-hub.iamexprogramers.site/api/v1/prompt-model`\r\n\r\n```python\r\nfrom iamex import send_prompt\r\n\r\n# Uso b\u00e1sico - necesitas prompt, api_key y model\r\nresponse = send_prompt(\r\n prompt=\"Explica qu\u00e9 es la inteligencia artificial\",\r\n api_key=\"tu_api_key_aqui\",\r\n model=\"IAM-advanced\"\r\n)\r\n\r\n# Con par\u00e1metros opcionales como max_tokens\r\nresponse = send_prompt(\r\n prompt=\"Explica qu\u00e9 es la inteligencia artificial\",\r\n api_key=\"tu_api_key_aqui\",\r\n model=\"IAM-advanced\",\r\n max_tokens=200 # Limitar respuesta a 200 tokens\r\n)\r\n\r\nprint(response)\r\n```\r\n\r\n### Con Par\u00e1metros Adicionales\r\n\r\n```python\r\n# Con par\u00e1metros adicionales usando kwargs\r\nresponse = send_prompt(\r\n prompt=\"\u00bfCu\u00e1les son las ventajas de usar Python?\",\r\n api_key=\"tu_api_key_aqui\",\r\n model=\"IAM-advanced\",\r\n temperature=0.7,\r\n max_tokens=200\r\n)\r\n```\r\n\r\n### Con Mensaje del Sistema\r\n\r\n```python\r\n# Con mensaje del sistema\r\nresponse = send_prompt(\r\n prompt=\"Explica qu\u00e9 es una funci\u00f3n lambda\",\r\n api_key=\"tu_api_key_aqui\",\r\n model=\"IAM-advanced\",\r\n system_prompt=\"Eres un asistente experto en programaci\u00f3n Python.\"\r\n)\r\n```\r\n\r\n## Uso Avanzado (Cliente)\r\n\r\nPara casos m\u00e1s avanzados, puedes usar la clase `PromptClient`:\r\n\r\n```python\r\nfrom iamex import PromptClient\r\n\r\n# Inicializar el cliente con tu API key\r\nclient = PromptClient(api_key=\"tu_api_key_aqui\")\r\n\r\n# Enviar un prompt (usa modelo por defecto 'IAM-advanced')\r\nresponse = client.send_prompt(\r\n prompt=\"Explica qu\u00e9 es la inteligencia artificial\"\r\n)\r\n\r\nprint(response)\r\n```\r\n\r\n## Uso con Modelo Espec\u00edfico\r\n\r\n```python\r\n# Especificar un modelo diferente\r\nresponse = client.send_prompt(\r\n prompt=\"Explica qu\u00e9 es Python\",\r\n modelo=\"IAM-advanced\"\r\n)\r\n```\r\n\r\n## Uso con Mensaje del Sistema\r\n\r\n```python\r\n# Incluir un mensaje del sistema para definir el comportamiento\r\nsystem_prompt = \"Eres un asistente experto en programaci\u00f3n.\"\r\nresponse = client.send_prompt(\r\n prompt=\"Explica qu\u00e9 es una funci\u00f3n\",\r\n modelo=\"IAM-advanced\",\r\n system_prompt=system_prompt\r\n)\r\n```\r\n\r\n## Par\u00e1metros Adicionales\r\n\r\nEl m\u00e9todo `send_prompt` acepta par\u00e1metros adicionales:\r\n\r\n```python\r\nresponse = client.send_prompt(\r\n prompt=\"Tu prompt aqu\u00ed\",\r\n modelo=\"IAM-advanced\",\r\n temperature=0.5, # Controla la creatividad (0.0 - 1.0)\r\n max_tokens=1000, # M\u00e1ximo n\u00famero de tokens en la respuesta\r\n top_p=0.9, # Controla la diversidad de la respuesta\r\n top_k=50, # Limita las opciones de tokens\r\n repetition_penalty=1.1, # Evita repeticiones\r\n presence_penalty=0.1, # Penaliza tokens ya presentes\r\n frequency_penalty=0.1, # Penaliza tokens frecuentes\r\n stream=False # Respuesta en streaming\r\n)\r\n```\r\n\r\n## Par\u00e1metros por Defecto\r\n\r\nSi no especificas par\u00e1metros, se usan estos valores:\r\n- `model`: `\"IAM-advanced\"`\r\n- `temperature`: `0.3`\r\n- `max_tokens`: `12000`\r\n- `top_p`: `0.9`\r\n- `top_k`: `50`\r\n- `repetition_penalty`: `1.1`\r\n- `presence_penalty`: `0.1`\r\n- `frequency_penalty`: `0.1`\r\n- `stream`: `False`\r\n\r\n## Obtener Modelos Disponibles\r\n\r\n```python\r\nmodels = client.get_models()\r\nprint(models)\r\n```\r\n\r\n## Manejo de Errores\r\n\r\n```python\r\ntry:\r\n response = client.send_prompt(\r\n prompt=\"Tu prompt aqu\u00ed\",\r\n modelo=\"IAM-advanced\"\r\n )\r\nexcept Exception as e:\r\n print(f\"Error: {e}\")\r\n```\r\n\r\n## Autenticaci\u00f3n\r\n\r\nLa librer\u00eda ahora soporta autenticaci\u00f3n por API key:\r\n\r\n```python\r\n# Con funci\u00f3n simple\r\nresponse = send_prompt(\"Tu prompt\", \"tu_api_key_aqui\", \"tu_modelo\")\r\n\r\n# Con cliente\r\nclient = PromptClient(api_key=\"tu_api_key_aqui\")\r\n```\r\n\r\n**Nota**: Si no proporcionas una API key, la librer\u00eda funcionar\u00e1 sin autenticaci\u00f3n (solo para desarrollo y pruebas).\r\n\r\n## Estructura del Payload\r\n\r\nLa funci\u00f3n `send_prompt` env\u00eda autom\u00e1ticamente este payload a la API:\r\n\r\n```json\r\n{\r\n \"apikey\": \"tu_api_key_aqui\",\r\n \"model\": \"tu_modelo\",\r\n \"prompt\": \"tu_prompt\"\r\n}\r\n```\r\n\r\n**Par\u00e1metros obligatorios:**\r\n- `apikey`: Tu clave de API para autenticaci\u00f3n\r\n- `model`: El modelo de IA a usar\r\n- `prompt`: El texto de tu consulta\r\n\r\n**Par\u00e1metros opcionales:**\r\n- `system_prompt`: Instrucciones del sistema (si se proporciona)\r\n- Cualquier otro par\u00e1metro que pases en `**kwargs`\r\n\r\n## Desarrollo\r\n\r\n### Instalaci\u00f3n para Desarrollo\r\n\r\n```bash\r\ngit clone https://github.com/IA-Mexico/iamex.git\r\ncd iamex\r\npip install -e \".[dev]\"\r\n```\r\n\r\n### Ejecutar Tests\r\n\r\n```bash\r\npytest\r\n```\r\n\r\n### Formatear C\u00f3digo\r\n\r\n```bash\r\nblack src/ tests/\r\n```\r\n\r\n## Licencia\r\n\r\nEste proyecto est\u00e1 bajo la Licencia MIT. Ver el archivo [LICENSE](LICENSE) para m\u00e1s detalles.\r\n\r\n## Soporte\r\n\r\n- **Documentaci\u00f3n**: [GitHub](https://github.com/IA-Mexico/iamex)\r\n- **Issues**: [GitHub Issues](https://github.com/IA-Mexico/iamex/issues)\r\n- **Email**: hostmaster@iamex.io\r\n## Changelog\r\n\r\n### v0.0.3\r\n- \u2705 **ACTUALIZADO**: Versi\u00f3n del paquete a 0.0.3\r\n- \u2705 **NUEVO**: Par\u00e1metro opcional `max_tokens` en funci\u00f3n `send_prompt`\r\n- \u2705 **MEJORADO**: Control de longitud de respuestas del modelo\r\n- \u2705 **MEJORADO**: Endpoint real de iam-hub implementado\r\n- \u2705 **OPTIMIZADO**: Ejemplos actualizados con nueva funcionalidad\r\n- \u2705 **OPTIMIZADO**: Estructura de payload exacta para la API\r\n- \u2705 **DOCUMENTACI\u00d3N**: Gu\u00edas de uso para max_tokens\r\n\r\n### v0.0.2\r\n- \u2705 **NUEVO**: Funci\u00f3n simple `send_prompt(prompt, api_key, model)` para uso r\u00e1pido\r\n- \u2705 **NUEVO**: Soporte completo para autenticaci\u00f3n con API key\r\n- \u2705 **NUEVO**: Conexi\u00f3n directa al endpoint real de iam-hub\r\n- \u2705 **MEJORADO**: Estructura de payload exacta que espera la API\r\n- \u2705 **DOCUMENTACI\u00d3N**: Ejemplos actualizados con la nueva funcionalidad\r\n\r\n### v0.0.1\r\n- Versi\u00f3n inicial\r\n- Cliente b\u00e1sico para env\u00edo de prompts\r\n- Endpoint fijo para el modelo actual\r\n- Soporte para m\u00faltiples modelos de inferencia\r\n- Cliente `PromptClient` para uso avanzado\r\n- **Modelo por defecto**: `IAM-advanced`\r\n- **Par\u00e1metros optimizados** seg\u00fan la API\r\n\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Acceso unificado a m\u00faltiples modelos de inferencia AI",
"version": "0.0.3",
"project_urls": {
"Bug Tracker": "https://github.com/IA-Mexico/iamex/issues",
"Documentation": "https://github.com/IA-Mexico/iamex#readme",
"Homepage": "https://github.com/IA-Mexico/iamex",
"Repository": "https://github.com/IA-Mexico/iamex.git",
"Source Code": "https://github.com/IA-Mexico/iamex"
},
"split_keywords": [
"ai",
" machine learning",
" inference",
" models",
" iamex",
" artificial intelligence"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "adcd85b04b60aa020b0706fb3cac73712400b3b61f84f7a10c8fb3b7718b8e8f",
"md5": "77288529162431dfdd8c0ff78a83e130",
"sha256": "ee35dc709840b0a4e700db4e3187a0d7784dea65765e50c015a8a595fc63345c"
},
"downloads": -1,
"filename": "iamex-0.0.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "77288529162431dfdd8c0ff78a83e130",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 6952,
"upload_time": "2025-09-07T16:48:33",
"upload_time_iso_8601": "2025-09-07T16:48:33.680209Z",
"url": "https://files.pythonhosted.org/packages/ad/cd/85b04b60aa020b0706fb3cac73712400b3b61f84f7a10c8fb3b7718b8e8f/iamex-0.0.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "80e6451cffe78b2f6d9e49bc0674b82801f71e28383ffa0b531ba4aee3b5f246",
"md5": "7783266da204eb56f89bdb780bb4641c",
"sha256": "6b995a1beb62f56ffa3619cc810f3a40cead42cf7bdee49b64ea4a2948e2fe64"
},
"downloads": -1,
"filename": "iamex-0.0.3.tar.gz",
"has_sig": false,
"md5_digest": "7783266da204eb56f89bdb780bb4641c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 13528,
"upload_time": "2025-09-07T16:48:34",
"upload_time_iso_8601": "2025-09-07T16:48:34.528107Z",
"url": "https://files.pythonhosted.org/packages/80/e6/451cffe78b2f6d9e49bc0674b82801f71e28383ffa0b531ba4aee3b5f246/iamex-0.0.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-07 16:48:34",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "IA-Mexico",
"github_project": "iamex",
"github_not_found": true,
"lcname": "iamex"
}