chore: add Kotlin directory structure, update registry.db and gitignore
Añade estructura inicial kotlin/functions/, actualiza registry.db con todos los cambios indexados, y ajusta .gitignore. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
---
|
||||
name: ollama_chat
|
||||
kind: function
|
||||
lang: kt
|
||||
domain: infra
|
||||
version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "fun ollamaChat(messages: List<Map<String, String>>, model: String = \"llama3.1:8b\", baseUrl: String = \"http://localhost:11434\", temperature: Double = 0.7, maxTokens: Int = 1024): OllamaChatResponse"
|
||||
description: "Envía una solicitud de chat completion a un servidor Ollama local. Retorna el contenido generado junto a métricas de duración y tokens evaluados."
|
||||
tags: [ollama, llm, chat, inference, http, android, kotlin]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
returns_optional: false
|
||||
error_type: "error_go_core"
|
||||
imports:
|
||||
- "org.json.JSONObject"
|
||||
- "org.json.JSONArray"
|
||||
- "java.net.HttpURLConnection"
|
||||
- "java.net.URL"
|
||||
tested: false
|
||||
tests: []
|
||||
test_file_path: ""
|
||||
file_path: "kotlin/functions/infra/ollama_chat.kt"
|
||||
params:
|
||||
- name: messages
|
||||
desc: "Lista de mapas role/content en formato OpenAI/Ollama. Ej: [{\"role\":\"user\",\"content\":\"Hola\"}]."
|
||||
- name: model
|
||||
desc: "Tag del modelo Ollama a usar. Por defecto 'llama3.1:8b'."
|
||||
- name: baseUrl
|
||||
desc: "URL base del servidor Ollama. Por defecto 'http://localhost:11434'."
|
||||
- name: temperature
|
||||
desc: "Temperatura de muestreo entre 0.0 (determinista) y 1.0 (creativo). Por defecto 0.7."
|
||||
- name: maxTokens
|
||||
desc: "Número máximo de tokens a generar. Por defecto 1024."
|
||||
output: "OllamaChatResponse con content (texto generado), model (nombre del modelo), totalDurationMs (duración total en milisegundos) y evalCount (tokens evaluados)."
|
||||
---
|
||||
|
||||
## Ejemplo
|
||||
|
||||
```kotlin
|
||||
val messages = listOf(
|
||||
mapOf("role" to "system", "content" to "Eres un asistente útil."),
|
||||
mapOf("role" to "user", "content" to "¿Cuál es la capital de Francia?")
|
||||
)
|
||||
|
||||
val response = ollamaChat(
|
||||
messages = messages,
|
||||
model = "llama3.1:8b",
|
||||
temperature = 0.3
|
||||
)
|
||||
|
||||
println(response.content) // "La capital de Francia es París."
|
||||
println(response.totalDurationMs) // 1234
|
||||
println(response.evalCount) // 42
|
||||
```
|
||||
|
||||
## Notas
|
||||
|
||||
Usa `java.net.HttpURLConnection` y `org.json.JSONObject` del Android SDK — sin dependencias externas adicionales. Timeout de 60 segundos tanto en conexión como en lectura.
|
||||
|
||||
La respuesta de Ollama incluye `total_duration` en nanosegundos; se convierte a milisegundos dividiendo entre 1_000_000.
|
||||
|
||||
Si Ollama no está corriendo lanza `RuntimeException("Ollama no está corriendo en $baseUrl")`. Si el servidor responde con un código HTTP distinto de 200, lanza `RuntimeException` con el código y el cuerpo del error.
|
||||
|
||||
El campo `stream` se fija a `false` para recibir la respuesta completa en una sola llamada.
|
||||
```
|
||||
---
|
||||
Reference in New Issue
Block a user