Skip to content

Commit 5bf9c10

Browse files
LXLM-Ollama-WebUI 1.1
1 parent 5bca05b commit 5bf9c10

20 files changed

Lines changed: 391 additions & 155 deletions

Lang/en.ini

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
[LangContent]
2+
your_password = Your password
3+
password_recovery_failed = Password recovery failed! The password you entered does not sufficiently match the registered password.
4+
app_title = A simple Ollama web interface made with Flask
5+
user_name_input = Username
6+
password_input = Password
7+
login_var = Log in
8+
user_ = User
9+
new_user_register = New user registration
10+
login_successfully = Logged in!
11+
welcome = Welcome
12+
go_to_app = Go to app
13+
login_failed = Login failed!
14+
login_failed_description = Username or password is incorrect.
15+
user_register = Register user
16+
try_again = Try again
17+
password_forget = I forgot my password
18+
password_recovery = Password recovery
19+
password_recovery_ = Password recovery for user account
20+
password_recovery_input = Please enter a similar password that you remember for your
21+
pass_rec_ = account...
22+
password_recovery_submit = Recover password
23+
password_recovery_report = Password recovery result
24+
user_register_failed = This username is already taken!
25+
user_register_ip = This IP address is already registered!
26+
register = Register
27+
user_register_failed_title = Registration failed!
28+
user_register_failed_description = Password cannot be blank.
29+
user_register_successfully = Registration successful!
30+
user_register_successfully_description = You can now log in.
31+
ollama_web_ui_title = You can use the AI models installed in your Ollama application here.
32+
user_model = Enter the model you want to use. Example: llama3:latest
33+
model_question = Please ask your model a question.
34+
model_submit = Ask a question
35+
exit = Log out
36+
app_requirements = You need to log in!
37+
app_requirements_description = You must first log in to use LXLM-Ollama-WebUI.

Lang/lang.ini

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[WebUILang]
2+
lang = EN

Lang/lang.py

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
import configparser
2+
3+
lang = configparser.ConfigParser()
4+
lang.read('Lang/lang.ini')
5+
6+
def set_lang(userlang):
7+
lang["WebUILang"]["lang"] = userlang
8+
with open('Lang/lang.ini', 'w') as f:
9+
lang.write(f)
10+
11+
user_lang = lang["WebUILang"]["lang"]
12+
13+
lang_file = configparser.ConfigParser()
14+
lang_file.read(f"Lang/{user_lang}.ini", encoding="utf-8")
15+
16+
your_password = lang_file["LangContent"]["your_password"]
17+
password_recovery_failed = lang_file["LangContent"]["password_recovery_failed"]
18+
app_title = lang_file["LangContent"]["app_title"]
19+
user_name_input = lang_file["LangContent"]["user_name_input"]
20+
password_input = lang_file["LangContent"]["password_input"]
21+
login_var = lang_file["LangContent"]["login_var"]
22+
new_user_register = lang_file["LangContent"]["new_user_register"]
23+
login_successfully = lang_file["LangContent"]["login_successfully"]
24+
welcome = lang_file["LangContent"]["welcome"]
25+
go_to_app = lang_file["LangContent"]["go_to_app"]
26+
login_failed = lang_file["LangContent"]["login_failed"]
27+
user_ = lang_file["LangContent"]["user_"]
28+
login_failed_description = lang_file["LangContent"]["login_failed_description"]
29+
user_register = lang_file["LangContent"]["user_register"]
30+
try_again = lang_file["LangContent"]["try_again"]
31+
pass_rec_ = lang_file["LangContent"]["pass_rec_"]
32+
user_register_ip = lang_file["LangContent"]["user_register_ip"]
33+
password_forget = lang_file["LangContent"]["password_forget"]
34+
password_recovery = lang_file["LangContent"]["password_recovery"]
35+
password_recovery_ = lang_file["LangContent"]["password_recovery_"]
36+
password_recovery_input = lang_file["LangContent"]["password_recovery_input"]
37+
password_recovery_submit = lang_file["LangContent"]["password_recovery_submit"]
38+
password_recovery_report = lang_file["LangContent"]["password_recovery_report"]
39+
user_register_failed = lang_file["LangContent"]["user_register_failed"]
40+
register = lang_file["LangContent"]["register"]
41+
user_register_failed_title = lang_file["LangContent"]["user_register_failed_title"]
42+
user_register_failed_description = lang_file["LangContent"]["user_register_failed_description"]
43+
user_register_successfully = lang_file["LangContent"]["user_register_successfully"]
44+
user_register_successfully_description = lang_file["LangContent"]["user_register_successfully_description"]
45+
ollama_web_ui_title = lang_file["LangContent"]["ollama_web_ui_title"]
46+
user_model = lang_file["LangContent"]["user_model"]
47+
model_question = lang_file["LangContent"]["model_question"]
48+
model_submit = lang_file["LangContent"]["model_submit"]
49+
exit = lang_file["LangContent"]["exit"]
50+
app_requirements = lang_file["LangContent"]["app_requirements"]
51+
app_requirements_description = lang_file["LangContent"]["app_requirements_description"]

Lang/tr.ini

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
[LangContent]
2+
your_password = Şifreniz
3+
password_recovery_failed = Şifre kurtarma başarısız! Girdiğiniz şifre, kayıtlı şifreye yeterince benzemiyor.
4+
app_title = Flask ile yapılmış basit bir Ollama web arayüzü
5+
user_name_input = Kullanıcı Adı
6+
password_input = Şifre
7+
login_var = Giriş Yap
8+
user_ = Kullanıcı
9+
new_user_register = Yeni kullanıcı kaydı
10+
login_successfully = Giriş Yapıldı!
11+
welcome = Hoş geldiniz
12+
go_to_app = Uygulamaya git
13+
login_failed = Giriş başarısız!
14+
login_failed_description = Kullanıcı adı veya şifre yanlış.
15+
user_register = Kullanıcı kaydet
16+
try_again = Tekrar dene
17+
password_forget = Şifremi unuttum
18+
password_recovery = Şifre kurtarma
19+
password_recovery_ = Kullanıcı hesabı için şifre kurtarma
20+
password_recovery_input = Lütfen
21+
pass_rec_ = Hesabınız için hatırladığınız şifrenin bir benzerini giriniz...
22+
password_recovery_submit = Şifreyi kurtar
23+
password_recovery_report = Şifre kurtarma sonucu
24+
user_register_failed = Bu kullanıcı adı zaten alınmış!
25+
user_register_ip = Bu IP adresi zaten kayıtlı!
26+
register = Kayıt Ol
27+
user_register_failed_title = Kayıt başarısız!
28+
user_register_failed_description = Şifre boş olamaz.
29+
user_register_successfully = Kayıt başarılı!
30+
user_register_successfully_description = Artık giriş yapabilirsiniz.
31+
ollama_web_ui_title = Ollama uygulamanızda yüklü olan AI modellerinizi buradan kullanabilirsiniz
32+
user_model = Kullanmak istediğiniz modeli yazın. Örnek: llama3:latest
33+
model_question = Modelinize lütfen bir soru yöneltin.
34+
model_submit = Soru sor
35+
exit = Çıkış yap
36+
app_requirements = Giriş yapmanız gerekiyor!
37+
app_requirements_description = LXLM-Ollama-WebUI uygulamasını kullanabilmeniz için öncelikle giriş yapmanız gerekiyor.

UserDatabase/user.ini

Whitespace-only changes.

templates/app_requirements.html

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
7+
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
8+
<title>{{ app_requirements }}</title>
9+
</head>
10+
<body>
11+
<h1 class="ms-2">{{ app_requirements }}</h1>
12+
<p class="ms-2">{{ app_requirements_description }}</p>
13+
<a class="btn btn-primary ms-2" style="margin-top: -16px;" href="/">{{ login_var }}</a>
14+
</body>
15+
</html>

templates/index.html

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
7+
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
8+
<title>{{ app_title }}</title>
9+
</head>
10+
<body>
11+
<h1 class="ms-2">{{ app_title }}</h1>
12+
<form action="/" method="post">
13+
<select class="form-select form-select-sm position-absolute end-0 me-2" onchange="this.form.submit()" name="lang" style="top: 7px; width: 15%;">
14+
<option value="" disabled selected hidden>{{ lang }}</option>
15+
<option value="TR">TR</option>
16+
<option value="EN">EN</option>
17+
</select>
18+
</form>
19+
<form action="/login" method="post">
20+
<input class="form-control form-control-sm w-75 ms-2" type="text" name="username" placeholder="{{ user_name_input}}"/> <br>
21+
<input class="form-control form-control-sm w-75 ms-2" type="password" name="password" style="margin-top: -20px;" placeholder="{{ password_input }}"/> <br>
22+
<div class="d-flex ms-2" style="margin-top: -18px;">
23+
<input class="btn btn-primary" type="submit" value="{{ login_var }}"/>
24+
<a class="btn btn-primary ms-1" href="/user">{{ new_user_register }}</a>
25+
</div>
26+
</form>
27+
</body>
28+
</html>

templates/login_failed.html

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
7+
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
8+
<title>{{ login_failed }}</title>
9+
</head>
10+
<body>
11+
<h1 class="ms-2">{{ login_failed }}</h1> <p class="ms-2">{{ login_failed_description }}</p>
12+
<form action="/passrecovery" method="post">
13+
<input type="hidden" name="username" value="{{ username }}"/>
14+
<div class="d-flex ms-1" style="margin-top: -16px;">
15+
<a class="btn btn-primary" href="/user">{{ user_register }}</a><a class="btn btn-primary ms-1" href="/">{{ try_again }}</a>
16+
<input class="btn btn-primary ms-1" type="submit" value="{{ password_forget }}"/>
17+
</div>
18+
</form>
19+
</body>
20+
</html>

templates/login_successfully.html

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
7+
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
8+
<title>{{ login_successfully }}</title>
9+
</head>
10+
<body>
11+
<h1 class="ms-2">{{ login_successfully }}</h1> <p class="ms-2">{{ welcome }}, {{ username }}</p>
12+
<a class="btn btn-primary ms-2" style="margin-top: -16px;" href="/app">{{ go_to_app }}</a>
13+
</body>
14+
</html>

templates/ollama_webui.html

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
7+
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
8+
<title>{{ ollama_web_ui_title }}</title>
9+
</head>
10+
<body>
11+
<h1 class="ms-2">{{ ollama_web_ui_title }}</h1>
12+
<form action="/chat" method="post">
13+
<input class="form-control form-control-sm w-75 ms-2" type="text" name="model" placeholder="{{ user_model }}"/>
14+
<input class="form-control form-control-sm w-75 ms-2 mt-2" type="text" name="msg" placeholder="{{ model_question }}"/> <br>
15+
<div class="d-flex ms-2" style="margin-top: -18px;">
16+
<input class="btn btn-primary" type="submit" value="{{ model_submit }}"/>
17+
<a class="btn btn-primary ms-1" href="/">{{ exit }}</a>
18+
</div>
19+
</form>
20+
</body>
21+
</html>

0 commit comments

Comments
 (0)