b1016ec845
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>
2.6 KiB
2.6 KiB
name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, tested, tests, test_file_path, file_path, params, output
| name | kind | lang | domain | version | purity | signature | description | tags | uses_functions | uses_types | returns | returns_optional | error_type | imports | tested | tests | test_file_path | file_path | params | output | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ollama_chat | function | kt | infra | 1.0.0 | impure | 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 | 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. |
|
false | error_go_core |
|
false | kotlin/functions/infra/ollama_chat.kt |
|
OllamaChatResponse con content (texto generado), model (nombre del modelo), totalDurationMs (duración total en milisegundos) y evalCount (tokens evaluados). |
Ejemplo
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.
---