lunaversex-genai


Namelunaversex-genai JSON
Version 1.0.1 PyPI version JSON
download
home_pageNone
SummaryLunaVerseX Generative AI SDK for Python
upload_time2025-08-19 01:13:31
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseApache-2.0
keywords ai sdk lunaversex generative-ai chat llm reasoning tools
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # lunaversex-genai

![PyPI Version](https://img.shields.io/pypi/v/lunaversex-genai)
![License](https://img.shields.io/pypi/l/lunaversex-genai)
![Python Version](https://img.shields.io/pypi/pyversions/lunaversex-genai)

**LunaVerseX Generative AI SDK for Python**

SDK oficial de **LunaVerseX** para integrar capacidades de **IA generativa** en aplicaciones Python.
Provee interfaces simples para chat, streaming, manejo de modelos y utilidades relacionadas.

📚 Documentación completa: [docs.lunaversex.com/sdks/genai](https://docs.lunaversex.com/sdks/genai)

---

## 🚀 Instalación

```bash
pip install lunaversex-genai
```

---

## ✨ Características

* 🔹 **Chat conversacional** con soporte para múltiples modelos.
* 🔹 **Streaming de respuestas** para baja latencia.
* 🔹 **Gestión de modelos disponibles**.
* 🔹 **Generación de texto simple o con razonamiento**.
* 🔹 **Extracción de uso de tokens**.
* 🔹 **Tipado completo** con soporte `py.typed`.

---

## 🧪 Modelos disponibles

| Modelo       | ID           | Soporta Reasoning | Descripción                                          |
| ------------ | ------------ | ----------------- | ---------------------------------------------------- |
| Lumi o1 Mini | lumi-o1-mini | ✅ Sí              | Modelo compacto para tareas generales.               |
| Lumi o1      | lumi-o1      | ❌ No              | Modelo equilibrado para uso general.                 |
| Lumi o1 Pro  | lumi-o1-pro  | ❌ No              | El modelo más creativo y sentimental.                |
| Lumi o1 High | lumi-o1-high | ✅ Sí              | Razonamiento profundo y rápido, código, matemáticas. |
| Lumi o3      | lumi-o3      | ✅ Sí (Nativo)     | El modelo más avanzado de LunaVerseX.                |

---

## 🧩 Funciones y Clases Exportadas

### Funciones Principales

* `genai.init(api_key: str, base_url: str = "https://api.lunaversex.com")`
  Inicializa el SDK con la clave API.

* `genai.chat(messages: List[Message], options: ChatOptions) -> ChatResponse`
  Envía un mensaje al modelo y recibe la respuesta completa.

* `genai.chatStream(messages: List[Message], options: ChatOptions) -> AsyncGenerator[StreamDelta, None]`
  Envía un mensaje al modelo y recibe la respuesta en streaming.

* `genai.listModels() -> ModelsResponse`
  Lista los modelos disponibles y sus características.

* `genai.generate(prompt: str, model: str = "lumi-o1") -> str`
  Genera texto simple desde un prompt.

* `genai.generateWithReasoning(prompt: str, effort: str = "medium", model: str = "lumi-o1-mini") -> Tuple[str, Optional[Dict]]`
  Genera texto incluyendo el proceso de razonamiento.

* `genai.tokens(response: ChatResponse) -> Usage`
  Extrae información de tokens de una respuesta.

* `genai.close()`
  Cierra las conexiones HTTP y libera recursos.

---

### Clases y Tipos de Datos

* `Message` – Representa un mensaje en la conversación.
* `ChatOptions` – Configuraciones para una petición de chat.
* `ChatResponse` – Respuesta completa de un chat.
* `StreamDelta` – Fragmentos recibidos durante el streaming.
* `Model` – Información de un modelo.
* `ModelsResponse` – Contenedor con todos los modelos disponibles.
* `ReasoningConfig` – Configuración de razonamiento para modelos.
* `ToolFunction` – Definición de función/herramienta para el modelo.
* `FileAttachment` – Archivos adjuntos a un mensaje.
* `Usage` – Información de uso de tokens.
* `ChatChoice` – Elección individual dentro de la respuesta de chat.

### Excepciones

* `LunaVerseXError` – Clase base para errores del SDK.
* `APIError` – Errores relacionados con solicitudes HTTP o la API.
* `ValidationError` – Error de validación en parámetros.
* `ConfigurationError` – Error de configuración del SDK.
* `ModelNotFoundError` – Modelo no encontrado o inválido.

---

## 🔧 Uso básico

### Configuración global

```python
from lunaversex-genai import genai

genai.init(api_key="your-api-key")
```

### Chat básico

```python
import asyncio
from lunaversex-genai import genai, Message, ChatOptions
genai.init(api_key="your-api-key")

async def run_chat():
    messages = [Message(role="user", content="Hola")]
    options = ChatOptions(model="lumi-o1")

    response = await genai.chat(messages, options)
    print("Respuesta:", response.choices[0].message.content)

    await genai.close()

asyncio.run(run_chat())
```

### Streaming de chat

```python
import asyncio
from lunaversex-genai import genai, Message, ChatOptions
genai.init(api_key="your-api-key")
async def run_stream():
    messages = [Message(role="user", content="Cuéntame una historia corta")]
    options = ChatOptions(model="lumi-o1-mini")

    async for delta in genai.chatStream(messages, options):
        if delta.type == "delta" and delta.content:
            print(delta.content, end="")
        elif delta.type == "end":
            print("\n[Fin del stream]")

    await genai.close()

asyncio.run(run_stream())
```

---

## 🔐 Seguridad

* **Nunca incluyas tu API Key directamente en el código fuente.**
* Usá variables de entorno (`os.environ["LUNAVERSEX_API_KEY"]`).
* El SDK no guarda ni expone claves sensibles.

---

## 📜 Licencia

Este proyecto está bajo licencia [Apache-2.0](LICENSE).

---

## 🧑‍💻 Autor

Desarrollado por **[LunaVerseX](https://www.lunaversex.com)**.
Mantenido por **[Joaco Heredia](https://github.com/joaco-heredia)**.

---

## 📈 Changelog

### v1.0.0 (2025-08-18)

* 🎉 Lanzamiento inicial del SDK Python.
* ✅ Implementación completa de `genai` con chat, streaming, manejo de modelos, generación con razonamiento y tokenización.
* 📝 Documentación inicial con ejemplos de uso.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "lunaversex-genai",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "Joaco Heredia <joaco@lunaversex.com>",
    "keywords": "ai, sdk, lunaversex, generative-ai, chat, llm, reasoning, tools",
    "author": null,
    "author_email": "LunaVerseX <support@lunaversex.com>, Joaco Heredia <joaco@lunaversex.com>",
    "download_url": "https://files.pythonhosted.org/packages/67/ed/8cf03527c9481c0c5a507cc124d5dc7ab4f36f4463bce8cc3db5c5770ed5/lunaversex_genai-1.0.1.tar.gz",
    "platform": null,
    "description": "# lunaversex-genai\r\n\r\n![PyPI Version](https://img.shields.io/pypi/v/lunaversex-genai)\r\n![License](https://img.shields.io/pypi/l/lunaversex-genai)\r\n![Python Version](https://img.shields.io/pypi/pyversions/lunaversex-genai)\r\n\r\n**LunaVerseX Generative AI SDK for Python**\r\n\r\nSDK oficial de **LunaVerseX** para integrar capacidades de **IA generativa** en aplicaciones Python.\r\nProvee interfaces simples para chat, streaming, manejo de modelos y utilidades relacionadas.\r\n\r\n\ud83d\udcda Documentaci\u00f3n completa: [docs.lunaversex.com/sdks/genai](https://docs.lunaversex.com/sdks/genai)\r\n\r\n---\r\n\r\n## \ud83d\ude80 Instalaci\u00f3n\r\n\r\n```bash\r\npip install lunaversex-genai\r\n```\r\n\r\n---\r\n\r\n## \u2728 Caracter\u00edsticas\r\n\r\n* \ud83d\udd39 **Chat conversacional** con soporte para m\u00faltiples modelos.\r\n* \ud83d\udd39 **Streaming de respuestas** para baja latencia.\r\n* \ud83d\udd39 **Gesti\u00f3n de modelos disponibles**.\r\n* \ud83d\udd39 **Generaci\u00f3n de texto simple o con razonamiento**.\r\n* \ud83d\udd39 **Extracci\u00f3n de uso de tokens**.\r\n* \ud83d\udd39 **Tipado completo** con soporte `py.typed`.\r\n\r\n---\r\n\r\n## \ud83e\uddea Modelos disponibles\r\n\r\n| Modelo       | ID           | Soporta Reasoning | Descripci\u00f3n                                          |\r\n| ------------ | ------------ | ----------------- | ---------------------------------------------------- |\r\n| Lumi o1 Mini | lumi-o1-mini | \u2705 S\u00ed              | Modelo compacto para tareas generales.               |\r\n| Lumi o1      | lumi-o1      | \u274c No              | Modelo equilibrado para uso general.                 |\r\n| Lumi o1 Pro  | lumi-o1-pro  | \u274c No              | El modelo m\u00e1s creativo y sentimental.                |\r\n| Lumi o1 High | lumi-o1-high | \u2705 S\u00ed              | Razonamiento profundo y r\u00e1pido, c\u00f3digo, matem\u00e1ticas. |\r\n| Lumi o3      | lumi-o3      | \u2705 S\u00ed (Nativo)     | El modelo m\u00e1s avanzado de LunaVerseX.                |\r\n\r\n---\r\n\r\n## \ud83e\udde9 Funciones y Clases Exportadas\r\n\r\n### Funciones Principales\r\n\r\n* `genai.init(api_key: str, base_url: str = \"https://api.lunaversex.com\")`\r\n  Inicializa el SDK con la clave API.\r\n\r\n* `genai.chat(messages: List[Message], options: ChatOptions) -> ChatResponse`\r\n  Env\u00eda un mensaje al modelo y recibe la respuesta completa.\r\n\r\n* `genai.chatStream(messages: List[Message], options: ChatOptions) -> AsyncGenerator[StreamDelta, None]`\r\n  Env\u00eda un mensaje al modelo y recibe la respuesta en streaming.\r\n\r\n* `genai.listModels() -> ModelsResponse`\r\n  Lista los modelos disponibles y sus caracter\u00edsticas.\r\n\r\n* `genai.generate(prompt: str, model: str = \"lumi-o1\") -> str`\r\n  Genera texto simple desde un prompt.\r\n\r\n* `genai.generateWithReasoning(prompt: str, effort: str = \"medium\", model: str = \"lumi-o1-mini\") -> Tuple[str, Optional[Dict]]`\r\n  Genera texto incluyendo el proceso de razonamiento.\r\n\r\n* `genai.tokens(response: ChatResponse) -> Usage`\r\n  Extrae informaci\u00f3n de tokens de una respuesta.\r\n\r\n* `genai.close()`\r\n  Cierra las conexiones HTTP y libera recursos.\r\n\r\n---\r\n\r\n### Clases y Tipos de Datos\r\n\r\n* `Message` \u2013 Representa un mensaje en la conversaci\u00f3n.\r\n* `ChatOptions` \u2013 Configuraciones para una petici\u00f3n de chat.\r\n* `ChatResponse` \u2013 Respuesta completa de un chat.\r\n* `StreamDelta` \u2013 Fragmentos recibidos durante el streaming.\r\n* `Model` \u2013 Informaci\u00f3n de un modelo.\r\n* `ModelsResponse` \u2013 Contenedor con todos los modelos disponibles.\r\n* `ReasoningConfig` \u2013 Configuraci\u00f3n de razonamiento para modelos.\r\n* `ToolFunction` \u2013 Definici\u00f3n de funci\u00f3n/herramienta para el modelo.\r\n* `FileAttachment` \u2013 Archivos adjuntos a un mensaje.\r\n* `Usage` \u2013 Informaci\u00f3n de uso de tokens.\r\n* `ChatChoice` \u2013 Elecci\u00f3n individual dentro de la respuesta de chat.\r\n\r\n### Excepciones\r\n\r\n* `LunaVerseXError` \u2013 Clase base para errores del SDK.\r\n* `APIError` \u2013 Errores relacionados con solicitudes HTTP o la API.\r\n* `ValidationError` \u2013 Error de validaci\u00f3n en par\u00e1metros.\r\n* `ConfigurationError` \u2013 Error de configuraci\u00f3n del SDK.\r\n* `ModelNotFoundError` \u2013 Modelo no encontrado o inv\u00e1lido.\r\n\r\n---\r\n\r\n## \ud83d\udd27 Uso b\u00e1sico\r\n\r\n### Configuraci\u00f3n global\r\n\r\n```python\r\nfrom lunaversex-genai import genai\r\n\r\ngenai.init(api_key=\"your-api-key\")\r\n```\r\n\r\n### Chat b\u00e1sico\r\n\r\n```python\r\nimport asyncio\r\nfrom lunaversex-genai import genai, Message, ChatOptions\r\ngenai.init(api_key=\"your-api-key\")\r\n\r\nasync def run_chat():\r\n    messages = [Message(role=\"user\", content=\"Hola\")]\r\n    options = ChatOptions(model=\"lumi-o1\")\r\n\r\n    response = await genai.chat(messages, options)\r\n    print(\"Respuesta:\", response.choices[0].message.content)\r\n\r\n    await genai.close()\r\n\r\nasyncio.run(run_chat())\r\n```\r\n\r\n### Streaming de chat\r\n\r\n```python\r\nimport asyncio\r\nfrom lunaversex-genai import genai, Message, ChatOptions\r\ngenai.init(api_key=\"your-api-key\")\r\nasync def run_stream():\r\n    messages = [Message(role=\"user\", content=\"Cu\u00e9ntame una historia corta\")]\r\n    options = ChatOptions(model=\"lumi-o1-mini\")\r\n\r\n    async for delta in genai.chatStream(messages, options):\r\n        if delta.type == \"delta\" and delta.content:\r\n            print(delta.content, end=\"\")\r\n        elif delta.type == \"end\":\r\n            print(\"\\n[Fin del stream]\")\r\n\r\n    await genai.close()\r\n\r\nasyncio.run(run_stream())\r\n```\r\n\r\n---\r\n\r\n## \ud83d\udd10 Seguridad\r\n\r\n* **Nunca incluyas tu API Key directamente en el c\u00f3digo fuente.**\r\n* Us\u00e1 variables de entorno (`os.environ[\"LUNAVERSEX_API_KEY\"]`).\r\n* El SDK no guarda ni expone claves sensibles.\r\n\r\n---\r\n\r\n## \ud83d\udcdc Licencia\r\n\r\nEste proyecto est\u00e1 bajo licencia [Apache-2.0](LICENSE).\r\n\r\n---\r\n\r\n## \ud83e\uddd1\u200d\ud83d\udcbb Autor\r\n\r\nDesarrollado por **[LunaVerseX](https://www.lunaversex.com)**.\r\nMantenido por **[Joaco Heredia](https://github.com/joaco-heredia)**.\r\n\r\n---\r\n\r\n## \ud83d\udcc8 Changelog\r\n\r\n### v1.0.0 (2025-08-18)\r\n\r\n* \ud83c\udf89 Lanzamiento inicial del SDK Python.\r\n* \u2705 Implementaci\u00f3n completa de `genai` con chat, streaming, manejo de modelos, generaci\u00f3n con razonamiento y tokenizaci\u00f3n.\r\n* \ud83d\udcdd Documentaci\u00f3n inicial con ejemplos de uso.\r\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "LunaVerseX Generative AI SDK for Python",
    "version": "1.0.1",
    "project_urls": {
        "Changelog": "https://github.com/lunaversex/genai-python/blob/main/CHANGELOG.md",
        "Documentation": "https://docs.lunaversex.com/sdks/genai",
        "Homepage": "https://www.lunaversex.com",
        "Issues": "https://github.com/lunaversex/genai-python/issues",
        "Repository": "https://github.com/lunaversex/genai-python"
    },
    "split_keywords": [
        "ai",
        " sdk",
        " lunaversex",
        " generative-ai",
        " chat",
        " llm",
        " reasoning",
        " tools"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "61509ba15fa26f85c1f6d8fb3e5f3af482161f76cb9ea273ab16e52a0d843104",
                "md5": "b6aa4652da708505abb35e2262ebf58e",
                "sha256": "927b3c73b5f075895d70297aed4bc6ff046f89af9d346a8b5e83da70310562e9"
            },
            "downloads": -1,
            "filename": "lunaversex_genai-1.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b6aa4652da708505abb35e2262ebf58e",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 11406,
            "upload_time": "2025-08-19T01:13:30",
            "upload_time_iso_8601": "2025-08-19T01:13:30.208847Z",
            "url": "https://files.pythonhosted.org/packages/61/50/9ba15fa26f85c1f6d8fb3e5f3af482161f76cb9ea273ab16e52a0d843104/lunaversex_genai-1.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "67ed8cf03527c9481c0c5a507cc124d5dc7ab4f36f4463bce8cc3db5c5770ed5",
                "md5": "6a89f02b0a5e06a5ce7a82a57b17e075",
                "sha256": "5f87749b5287d93964e69034c498cba92e12fa05d7323c79749f5825c777d1c3"
            },
            "downloads": -1,
            "filename": "lunaversex_genai-1.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "6a89f02b0a5e06a5ce7a82a57b17e075",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 13098,
            "upload_time": "2025-08-19T01:13:31",
            "upload_time_iso_8601": "2025-08-19T01:13:31.985749Z",
            "url": "https://files.pythonhosted.org/packages/67/ed/8cf03527c9481c0c5a507cc124d5dc7ab4f36f4463bce8cc3db5c5770ed5/lunaversex_genai-1.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-19 01:13:31",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "lunaversex",
    "github_project": "genai-python",
    "github_not_found": true,
    "lcname": "lunaversex-genai"
}
        
Elapsed time: 0.76094s