Compare commits
4 Commits
0950698242
...
53012dcbe1
Author | SHA1 | Date | |
---|---|---|---|
53012dcbe1 | |||
b05ba61ac1 | |||
b653c29e0b | |||
124f367b5e |
23
.gitea/workflows/deploy.yml
Normal file
23
.gitea/workflows/deploy.yml
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
name: Deploy Bot
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [production]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-and-deploy:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Build Docker Image
|
||||||
|
run: docker build -t my-telegram-bot .
|
||||||
|
|
||||||
|
- name: Run Container
|
||||||
|
run: |
|
||||||
|
docker stop my-telegram-bot || true
|
||||||
|
docker rm my-telegram-bot || true
|
||||||
|
docker run -d --name my-telegram-bot --restart unless-stopped \
|
||||||
|
-e TELEGRAM_TOKEN=7745542423:AAHc3JM1kvO-Z_1OBp1L95T9QWr4jRrbfpY \
|
||||||
|
my-telegram-bot
|
32
index.js
32
index.js
@ -1,37 +1,35 @@
|
|||||||
import { Telegraf } from "telegraf";
|
import { Telegraf } from "telegraf";
|
||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
|
|
||||||
const botToken = "7745542423:AAHc3JM1kvO-Z_1OBp1L95T9QWr4jRrbfpY";
|
const botToken = "7745542423:AAHc3JM1kvO-Z_1OBp1L95T9QWr4jRrbfpY"; // замени на свой
|
||||||
const bot = new Telegraf(botToken);
|
const bot = new Telegraf(botToken);
|
||||||
|
|
||||||
const MODEL_URL = "https://llm.miduway.space/generate";
|
// Новый API Ollama
|
||||||
bot.start((ctx) => ctx.reply("Привет! Я — RuGPT-бот. Напиши что-нибудь."));
|
const OLLAMA_URL = "http://localhost:11434/api/generate";
|
||||||
|
|
||||||
|
bot.start((ctx) =>
|
||||||
|
ctx.reply("Привет! Я — Mistral-бoт через Ollama. Напиши что-нибудь.")
|
||||||
|
);
|
||||||
|
|
||||||
bot.on("text", async (ctx) => {
|
bot.on("text", async (ctx) => {
|
||||||
const input = ctx.message.text;
|
const input = ctx.message.text;
|
||||||
ctx.sendChatAction("typing");
|
ctx.sendChatAction("typing");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const res = await axios.post(MODEL_URL, {
|
const response = await axios.post(OLLAMA_URL, {
|
||||||
inputs: input,
|
model: "mistral:instruct",
|
||||||
parameters: {
|
prompt: input,
|
||||||
do_sample: true,
|
stream: false,
|
||||||
top_k: 50,
|
|
||||||
top_p: 0.95,
|
|
||||||
temperature: 1,
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const generated =
|
const generated =
|
||||||
res.data.generated_text ||
|
response.data.response || "Не удалось сгенерировать ответ.";
|
||||||
res.data.generated_texts?.[0] ||
|
ctx.reply(generated.trim());
|
||||||
"Не удалось сгенерировать.";
|
|
||||||
ctx.reply(generated);
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error("Ошибка при запросе к модели:", err.message);
|
console.error("Ошибка при запросе к Ollama:", err.message);
|
||||||
ctx.reply("Произошла ошибка при генерации текста.");
|
ctx.reply("Произошла ошибка при генерации текста.");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
bot.launch();
|
bot.launch();
|
||||||
console.log("🤖 Бот запущен и использует модель от Сбербанка.");
|
console.log("🤖 Бот запущен и использует Ollama + Mistral.");
|
||||||
|
Reference in New Issue
Block a user