#wip: Testing the base ollama.
This commit is contained in:
parent
2cd06e2227
commit
0e595ea428
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
/ollama
|
||||
/open-webui
|
||||
53
AIChat.py
Normal file
53
AIChat.py
Normal file
@ -0,0 +1,53 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from typing import Self, Any
|
||||
from threading import Thread
|
||||
from requests import post as Post, Response
|
||||
from json import loads as json_decode
|
||||
|
||||
class AIChat:
|
||||
|
||||
PAYLOAD:dict[str, str|bool] = {
|
||||
"model" : "gemma",
|
||||
"stream" : True
|
||||
}
|
||||
|
||||
def __init__(self:Self) -> None:
|
||||
self.__working:bool = True
|
||||
self.__thread:Thread = Thread(target=self.__listener)
|
||||
self.__thread.start()
|
||||
|
||||
def send(self:Self, message:str) -> str:
|
||||
try:
|
||||
|
||||
response:Response
|
||||
|
||||
with Post('http://localhost:11434/api/chat', json = {**self.PAYLOAD, "prompt" : message}) as response:
|
||||
|
||||
line:bytes
|
||||
|
||||
for line in response.iter_lines():
|
||||
if line:
|
||||
|
||||
chunk:dict[str, Any|None] = json_decode(line)
|
||||
|
||||
print(chunk.get("response", ""), end = "", flush = True)
|
||||
|
||||
if chunk.get("done"):
|
||||
break
|
||||
|
||||
except Exception as exception:
|
||||
print(f"An error occurred while sending the message: {exception}")
|
||||
|
||||
def __listener(self:Self) -> None:
|
||||
while self.__working:
|
||||
|
||||
user_input:str = input('> ')
|
||||
|
||||
if user_input in ("close", "exit", "quit"):
|
||||
self.__working = False
|
||||
else:
|
||||
self.send(user_input)
|
||||
|
||||
ai_chat = AIChat()
|
||||
25
README.md
25
README.md
@ -1,3 +1,28 @@
|
||||
# AIDockerCompose
|
||||
|
||||
Ecosistema de intérpretes y modelos de IAs vía Docker Compose.
|
||||
|
||||
# Notas
|
||||
|
||||
```sh
|
||||
#!/bin/bash
|
||||
|
||||
# Descarga de modelos.
|
||||
docker exec -it ollama ollama pull gemma
|
||||
|
||||
# Descarga y prueba por terminal.
|
||||
docker exec -it ollama ollama run gemma
|
||||
|
||||
```
|
||||
|
||||
Modelos:
|
||||
|
||||
- gemma - 5GB
|
||||
- gemma3 - 3.3GB
|
||||
|
||||
# Referencias
|
||||
|
||||
- https://hub.docker.com/r/ollama/ollama
|
||||
- https://github.com/ollama/ollama
|
||||
- https://ollama.com/library
|
||||
- https://ollama.com/steamdj/llama3.1-cpu-only
|
||||
25
docker-compose.yml
Normal file
25
docker-compose.yml
Normal file
@ -0,0 +1,25 @@
|
||||
services:
|
||||
ollama:
|
||||
image: ollama/ollama:latest
|
||||
container_name: ollama
|
||||
volumes:
|
||||
- ./ollama:/root/.ollama
|
||||
ports:
|
||||
- 11434:11434/tcp
|
||||
pull_policy: always
|
||||
tty: true
|
||||
restart: unless-stopped
|
||||
|
||||
# open-webui:
|
||||
# image: ghcr.io/open-webui/open-webui:main
|
||||
# container_name: open-webui
|
||||
# volumes:
|
||||
# - ./open-webui:/app/backend/data
|
||||
# depends_on:
|
||||
# - ollama
|
||||
# ports:
|
||||
# - 3000:8080/tcp
|
||||
# environment:
|
||||
# - 'OLLAMA_BASE_URL=http://ollama:11434'
|
||||
# - 'WEBUI_SECRET_KEY=tu_clave_secreta_aqui'
|
||||
# restart: unless-stopped
|
||||
150
navecitas.html
Normal file
150
navecitas.html
Normal file
@ -0,0 +1,150 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Juego de Nave y Marcianos</title>
|
||||
<style>
|
||||
body {
|
||||
margin: 0;
|
||||
overflow: hidden; /* Oculta las barras de scroll */
|
||||
}
|
||||
canvas {
|
||||
background-color: black;
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<canvas id="gameCanvas"></canvas>
|
||||
<script>
|
||||
const canvas = document.getElementById('gameCanvas');
|
||||
const ctx = canvas.getContext('2d');
|
||||
|
||||
// Ajustar el tamaño del canvas a la ventana
|
||||
canvas.width = window.innerWidth;
|
||||
canvas.height = window.innerHeight;
|
||||
|
||||
// Variables del juego
|
||||
let nave = {
|
||||
x: canvas.width / 2,
|
||||
y: canvas.height - 50,
|
||||
velocidad: 5,
|
||||
disparoIntervalo: 1000, // Intervalo en milisegundos para disparar
|
||||
disparos: []
|
||||
};
|
||||
|
||||
let marcianos = [];
|
||||
let numMarcianos = 5; // Puedes cambiar este número
|
||||
let intervaloMarcianos = 1500; // Intervalo en milisegundos para crear marcianos
|
||||
|
||||
let puntuacion = 0;
|
||||
|
||||
// Función para crear un marciano
|
||||
function crearMarciano() {
|
||||
const ancho = 30;
|
||||
const alto = 20;
|
||||
const x = Math.random() * (canvas.width - ancho);
|
||||
const y = 0;
|
||||
|
||||
marcianos.push({
|
||||
x: x,
|
||||
y: y,
|
||||
ancho: ancho,
|
||||
alto: alto,
|
||||
velocidad: 2
|
||||
});
|
||||
}
|
||||
|
||||
// Función para dibujar la nave
|
||||
function dibujarNave() {
|
||||
ctx.fillStyle = 'green';
|
||||
ctx.fillRect(nave.x, nave.y, 30, 30);
|
||||
}
|
||||
|
||||
// Función para dibujar los disparos
|
||||
function dibujarDisparos() {
|
||||
nave.disparos.forEach(disparo => {
|
||||
ctx.fillStyle = 'red';
|
||||
ctx.fillRect(disparo.x, disparo.y, 5, 10);
|
||||
});
|
||||
}
|
||||
|
||||
// Función para dibujar los marcianos
|
||||
function dibujarMarcianos() {
|
||||
marcianos.forEach(marcian => {
|
||||
ctx.fillStyle = 'red';
|
||||
ctx.fillRect(marcian.x, marcian.y, marcian.ancho, marcian.alto);
|
||||
});
|
||||
}
|
||||
|
||||
// Función para actualizar el juego
|
||||
function actualizarJuego() {
|
||||
// Mover la nave
|
||||
nave.x += nave.velocidad;
|
||||
|
||||
// Limitar el movimiento de la nave
|
||||
if (nave.x < 0) {
|
||||
nave.x = 0;
|
||||
}
|
||||
if (nave.x > canvas.width - 30) {
|
||||
nave.x = canvas.width - 30;
|
||||
}
|
||||
|
||||
// Crear marcianos
|
||||
if (Math.random() < 0.03) { // Probabilidad de crear un marciano
|
||||
crearMarciano();
|
||||
}
|
||||
|
||||
// Mover los marcianos
|
||||
marcianos.forEach(marcian => {
|
||||
marcian.x += marcian.velocidad;
|
||||
});
|
||||
|
||||
// Eliminar marcianos que salen de la pantalla
|
||||
marcianos = marcianos.filter(marcian => marcian.x + marcian.ancho > 0);
|
||||
|
||||
// Eliminar disparos que salen de la pantalla
|
||||
nave.disparos = nave.disparos.filter(disparo => disparo.x + 5 > 0);
|
||||
|
||||
// Dibujar todo
|
||||
ctx.clearRect(0, 0, canvas.width, canvas.height); // Limpia el canvas
|
||||
dibujarNave();
|
||||
dibujarMarcianos();
|
||||
dibujarDisparos();
|
||||
|
||||
// Verificar colisiones
|
||||
colisionar();
|
||||
}
|
||||
|
||||
// Función para verificar colisiones
|
||||
function colisionar() {
|
||||
// Colisiones entre la nave y los marcianos
|
||||
marcianos.forEach(marcian => {
|
||||
if (
|
||||
nave.x < marcian.x + marcian.ancho &&
|
||||
nave.x + 30 > marcian.x &&
|
||||
nave.y < marcian.y + marcian.alto &&
|
||||
nave.y + 30 > marcian.y
|
||||
) {
|
||||
alert("¡Te ha alcanzado un marciano!");
|
||||
location.reload(); // Recarga la página para reiniciar el juego
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Evento de clic para disparar
|
||||
document.addEventListener('click', function() {
|
||||
const disparo = {
|
||||
x: nave.x + 15,
|
||||
y: nave.y
|
||||
};
|
||||
nave.disparos.push(disparo);
|
||||
});
|
||||
|
||||
|
||||
// Llamar a actualizarJuego cada frame
|
||||
setInterval(actualizarJuego, 20); // Ajustar este valor para controlar la velocidad del juego
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
134
navecitas.v2.html
Normal file
134
navecitas.v2.html
Normal file
@ -0,0 +1,134 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Juego de Nave y Marcianos</title>
|
||||
<style>
|
||||
body {
|
||||
margin: 0;
|
||||
overflow: hidden; /* Oculta las barras de scroll */
|
||||
}
|
||||
canvas {
|
||||
background-color: black;
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<canvas id="gameCanvas"></canvas>
|
||||
<script>
|
||||
const canvas = document.getElementById('gameCanvas');
|
||||
const ctx = canvas.getContext('2d');
|
||||
|
||||
// Ajustar el tamaño del canvas a la ventana
|
||||
canvas.width = window.innerWidth;
|
||||
canvas.height = window.innerHeight;
|
||||
|
||||
// Variables del juego
|
||||
let nave = {
|
||||
x: canvas.width / 2,
|
||||
y: canvas.height - 50,
|
||||
velocidad: 5,
|
||||
disparoIntervalo: 1000, // Intervalo en milisegundos para disparar
|
||||
disparos: []
|
||||
};
|
||||
|
||||
let marcianos = [];
|
||||
let numMarcianos = 5; // Puedes cambiar este número
|
||||
let intervaloMarcianos = 1500; // Intervalo en milisegundos para crear marcianos
|
||||
|
||||
let puntuacion = 0;
|
||||
|
||||
// Función para crear un marciano
|
||||
function crearMarciano() {
|
||||
const ancho = 30;
|
||||
const alto = 20;
|
||||
const x = Math.random() * (canvas.width - ancho);
|
||||
const y = 0;
|
||||
|
||||
marcianos.push({
|
||||
x: x,
|
||||
y: y,
|
||||
ancho: ancho,
|
||||
alto: alto,
|
||||
velocidad: 2
|
||||
});
|
||||
}
|
||||
|
||||
// Función para dibujar la nave
|
||||
function dibujarNave() {
|
||||
ctx.fillStyle = 'green';
|
||||
ctx.fillRect(nave.x, nave.y, 30, 30);
|
||||
}
|
||||
|
||||
// Función para dibujar los disparos
|
||||
function dibujarDisparos() {
|
||||
nave.disparos.forEach(disparo => {
|
||||
ctx.fillStyle = 'red';
|
||||
ctx.fillRect(disparo.x, disparo.y, 5, 10);
|
||||
// Eliminar disparos que salen de la pantalla
|
||||
if (disparo.x + 5 < 0) {
|
||||
nave.disparos = nave.disparos.filter(d => d.x !== disparo.x); // Elimina el disparo del array
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Función para dibujar los marcianos
|
||||
function dibujarMarcianos() {
|
||||
marcianos.forEach(marcian => {
|
||||
ctx.fillStyle = 'red';
|
||||
ctx.fillRect(marcian.x, marcian.y, marcian.ancho, marcian.alto);
|
||||
// Mover los marcianos
|
||||
marcian.x += marcian.velocidad;
|
||||
});
|
||||
}
|
||||
|
||||
// Función para actualizar el juego
|
||||
function actualizarJuego() {
|
||||
// Mover la nave
|
||||
nave.x += nave.velocidad;
|
||||
|
||||
// Limitar el movimiento de la nave
|
||||
if (nave.x < 0) {
|
||||
nave.x = 0;
|
||||
}
|
||||
if (nave.x > canvas.width - 30) {
|
||||
nave.x = canvas.width - 30;
|
||||
}
|
||||
|
||||
// Crear marcianos
|
||||
if (Math.random() < 0.03) {
|
||||
crearMarciano();
|
||||
}
|
||||
|
||||
// Mover los marcianos
|
||||
marcianos.forEach(marcian => {
|
||||
marcian.x += marcian.velocidad;
|
||||
});
|
||||
|
||||
// Eliminar marcianos que salen de la pantalla
|
||||
marcianos = marcianos.filter(marcian => marcian.x + marcian.ancho > 0);
|
||||
|
||||
// Dibujar todo
|
||||
ctx.clearRect(0, 0, canvas.width, canvas.height); // Limpia el canvas
|
||||
dibujarNave();
|
||||
dibujarMarcianos();
|
||||
dibujarDisparos();
|
||||
}
|
||||
|
||||
// Evento de clic para disparar
|
||||
document.addEventListener('click', function() {
|
||||
const disparo = {
|
||||
x: nave.x + 15,
|
||||
y: nave.y
|
||||
};
|
||||
nave.disparos.push(disparo);
|
||||
});
|
||||
|
||||
// Llamar a actualizarJuego cada frame
|
||||
setInterval(actualizarJuego, 20);
|
||||
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Loading…
Reference in New Issue
Block a user