Ratings | | Unique User Downloads | | Download Rankings |
Not yet rated by the users | | Total: 41 | | All time: 10,897 This week: 59 |
|
Description | | Author |
This package implements a Telegram bot that can interact with Ollama AI models.
It implements new commands for a Telegram bot that can use the Ollama artificial intelligence models to interact with users.
This package can use the Ollama API to send user queries entered in Telegram and return the Ollama API query responses.
Telegram bot to interact with llama models
ImplemeTelegram bot to interact with ollama models
Innovation Award
 January 2024
Winner |
The evolution of artificial intelligence applications made it possible for lay users to interact with applications like ChatGPT, for instance, which can interpret the user's natural language and respond to their questions.
On the other hand, popular chat applications like Telegram made it simple for any user to interact with other users.
This package combined the possibilities of natural language interpretation with the simplicity of Telegram to implement a chatbot application that can take user questions and provide answers using the artificial intelligence models supplied by the Ollama API.
Manuel Lemos |
| |
 |
|
Innovation award
 Nominee: 10x
Winner: 3x |
|
Example
<?php
use Mateodioev\OllamaBot\Cache\UserCache;
use Mateodioev\OllamaBot\Db\MysqlDatabase;
use Mateodioev\OllamaBot\Events\{CancellCompletation, Chat, PrivateTextListener, SetModel, Start, ViewCompletionDetails};
use Mateodioev\OllamaBot\Repository\MysqlUserRepository;
use Mateodioev\TgHandler\{Bot, Log};
use function Mateodioev\OllamaBot\env;
require __DIR__ . '/vendor/autoload.php';
\Dotenv\Dotenv::createImmutable(__DIR__)->load();
// Create logger
$logStreams = new Log\BulkStream(
new Log\TerminalStream(),
// (new Log\PhpNativeStream())->activate(env('LOG_DIR', __DIR__))
);
$logger = new Log\Logger($logStreams);
// Create bot
$bot = new Bot(env('BOT_TOKEN'), $logger);
$logStreams->add(new Log\BotApiStream($bot->getApi(), (int) env('BOT_LOG_CHANNEL_ID')));
$bot->onEvent(Start::get())
->onEvent(Chat::get())
->onEvent(SetModel::get())
->onEvent(CancellCompletation::get())
->onEvent(new PrivateTextListener())
->onEvent(new ViewCompletionDetails());
$db = new MysqlDatabase('mysql:host=' . env('DB_HOST') . ';dbname=' . env('DB_NAME') . ';charset=utf8mb4', env('DB_USER'), env('DB_PASS'));
UserCache::setRepo(new MysqlUserRepository($db));
$bot->longPolling(
(int) env('BOT_POLLING_TIMEOUT', 60),
(bool) env('BOT_POLLING_IGNORE_OLD_UPDATES', false),
(bool) env('BOT_ASYNC', true)
);
|
Details
Ollama telegram bot
This bot helps you to interact with ollama models
https://github.com/Mateodioev/ollama-bot/assets/68271130/6cbec742-994b-4f79-85cf-804ec95663ad
Commands
If you want to generate a completion just send a private message to the bot or if you want to use in a public group use the command /chat
followed by the text of your choice. Other commands:
-
`/setmodel` Change your current model
-
`/start`
Installation
Requirements:
-
\>= PHP 8.2
-
Mysql
-
Access to ollama api
Steps
-
Clone this repository
git clone https://github.com/Mateodioev/ollama-bot.git
cd ollama-bot
-
Install dependencies
composer install --optimize-autoloader --no-interaction --no-dev
-
Setup your database mysql with file `db/main.sql`
-
Create an edit .env file
cp .env.example .env
vim .env # Or use your favorite editor
-
Run the bot
php index.php
Note
> If your default model is diferent to codellama
for example llama2
, edit the file src/Events/Middlewares.php
line 13
See ollama docs in https://github.com/jmorganca/ollama
|
Applications that use this package |
|
No pages of applications that use this class were specified.
If you know an application of this package, send a message to the author to add a link here.