rebuild structure
This commit is contained in:
parent
01d9496841
commit
1f074699dc
@ -1,5 +1,5 @@
|
|||||||
#default_language_version:
|
default_language_version:
|
||||||
# python: python3.10.8
|
python: python3.10.10
|
||||||
|
|
||||||
ci:
|
ci:
|
||||||
autofix_commit_msg: |
|
autofix_commit_msg: |
|
||||||
@ -49,6 +49,7 @@ repos:
|
|||||||
hooks:
|
hooks:
|
||||||
- id: ruff
|
- id: ruff
|
||||||
exclude: ^tests/
|
exclude: ^tests/
|
||||||
|
args: [--fix, --exit-non-zero-on-fix]
|
||||||
|
|
||||||
- repo: https://github.com/abravalheri/validate-pyproject
|
- repo: https://github.com/abravalheri/validate-pyproject
|
||||||
rev: v0.12.2
|
rev: v0.12.2
|
||||||
@ -63,11 +64,11 @@ repos:
|
|||||||
- id: python-check-blanket-noqa
|
- id: python-check-blanket-noqa
|
||||||
- id: python-use-type-annotations
|
- id: python-use-type-annotations
|
||||||
- id: text-unicode-replacement-char
|
- id: text-unicode-replacement-char
|
||||||
|
#
|
||||||
- repo: https://github.com/pre-commit/mirrors-mypy
|
# - repo: https://github.com/pre-commit/mirrors-mypy
|
||||||
rev: v1.2.0
|
# rev: v1.2.0
|
||||||
hooks:
|
# hooks:
|
||||||
- id: mypy
|
# - id: mypy
|
||||||
additional_dependencies: [ types-PyYAML==6.0.10, types_requests==2.28.8, types-ujson==5.6.0 ]
|
# additional_dependencies: [ types-PyYAML==6.0.10, types_requests==2.28.8, types-ujson==5.6.0 ]
|
||||||
args: [ --ignore-missing-imports, --warn-no-return, --warn-redundant-casts, --disallow-incomplete-defs ]
|
# args: [ --ignore-missing-imports, --warn-no-return, --warn-redundant-casts, --disallow-incomplete-defs ]
|
||||||
exclude: ^setup.py
|
# exclude: ^setup.py
|
||||||
|
2
MANIFEST.in
Normal file
2
MANIFEST.in
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
include ai_talks/assets/*
|
||||||
|
include ai_talks/src/styles/.css
|
0
ai_talks/src/utils/agi/__init__.py
Normal file
0
ai_talks/src/utils/agi/__init__.py
Normal file
35
ai_talks/src/utils/constants.py
Normal file
35
ai_talks/src/utils/constants.py
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
AI_ROLE_OPTIONS_EN: list[str] = [
|
||||||
|
"helpful assistant",
|
||||||
|
"code assistant",
|
||||||
|
"code reviewer",
|
||||||
|
"text improver",
|
||||||
|
"cinema expert",
|
||||||
|
"sport expert",
|
||||||
|
"online games expert",
|
||||||
|
"food recipes expert",
|
||||||
|
"English grammar expert",
|
||||||
|
"friendly and helpful teaching assistant",
|
||||||
|
"laconic assistant",
|
||||||
|
"helpful, pattern-following assistant",
|
||||||
|
"translate corporate jargon into plain English",
|
||||||
|
]
|
||||||
|
|
||||||
|
AI_ROLE_OPTIONS_RU: list[str] = [
|
||||||
|
"ассистент, который готов помочь",
|
||||||
|
"ассистент программиста",
|
||||||
|
"рецензент кода программиста",
|
||||||
|
"эксперт по улучшению текста",
|
||||||
|
"эксперт по кинематографу",
|
||||||
|
"эксперт в области спорта",
|
||||||
|
"эксперт в онлайн-играх",
|
||||||
|
"эксперт по рецептам блюд",
|
||||||
|
"эксперт по английской грамматике",
|
||||||
|
"эксперт по русской грамматике",
|
||||||
|
"дружелюбный и полезный помощник преподавателя",
|
||||||
|
"лаконичный помощник",
|
||||||
|
"полезный помощник, следующий шаблонам",
|
||||||
|
"переводчик корпоративного жаргона на простой русский",
|
||||||
|
]
|
||||||
|
|
||||||
|
README_URL: str = "https://github.com/dKosarevsky/AI-Talks#readme"
|
||||||
|
AI_TALKS_URL: str = "https://ai-talks.streamlit.app/"
|
@ -3,10 +3,10 @@ from openai.error import InvalidRequestError, OpenAIError
|
|||||||
from requests.exceptions import TooManyRedirects
|
from requests.exceptions import TooManyRedirects
|
||||||
from streamlit_chat import message
|
from streamlit_chat import message
|
||||||
|
|
||||||
from src.utils.agi.bard import BardChat
|
from ai_talks.src.utils.agi.bard import BardChat
|
||||||
from src.utils.agi.chat_gpt import create_gpt_completion
|
from ai_talks.src.utils.agi.chat_gpt import create_gpt_completion
|
||||||
from src.utils.stt import show_voice_input
|
from ai_talks.src.utils.stt import show_voice_input
|
||||||
from src.utils.tts import show_audio_player
|
from ai_talks.src.utils.tts import show_audio_player
|
||||||
|
|
||||||
|
|
||||||
def clear_chat() -> None:
|
def clear_chat() -> None:
|
||||||
|
@ -2,7 +2,7 @@ from pathlib import Path
|
|||||||
|
|
||||||
import streamlit as st
|
import streamlit as st
|
||||||
|
|
||||||
from src.utils.helpers import render_svg
|
from ai_talks.src.utils.helpers import render_svg
|
||||||
|
|
||||||
|
|
||||||
def show_info(icon: Path) -> None:
|
def show_info(icon: Path) -> None:
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from typing import List # NOQA: UP035
|
from typing import List # NOQA: UP035
|
||||||
|
|
||||||
|
from ai_talks.src.utils.constants import AI_ROLE_OPTIONS_EN, AI_ROLE_OPTIONS_RU, AI_TALKS_URL, README_URL
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class Locale:
|
class Locale:
|
||||||
@ -39,42 +41,7 @@ class Locale:
|
|||||||
empty_api_handler: str
|
empty_api_handler: str
|
||||||
|
|
||||||
|
|
||||||
AI_ROLE_OPTIONS_EN = [
|
# --- LOCALE SETTINGS ---
|
||||||
"helpful assistant",
|
|
||||||
"code assistant",
|
|
||||||
"code reviewer",
|
|
||||||
"text improver",
|
|
||||||
"cinema expert",
|
|
||||||
"sport expert",
|
|
||||||
"online games expert",
|
|
||||||
"food recipes expert",
|
|
||||||
"English grammar expert",
|
|
||||||
"friendly and helpful teaching assistant",
|
|
||||||
"laconic assistant",
|
|
||||||
"helpful, pattern-following assistant",
|
|
||||||
"translate corporate jargon into plain English",
|
|
||||||
]
|
|
||||||
|
|
||||||
AI_ROLE_OPTIONS_RU = [
|
|
||||||
"ассистент, который готов помочь",
|
|
||||||
"ассистент программиста",
|
|
||||||
"рецензент кода программиста",
|
|
||||||
"эксперт по улучшению текста",
|
|
||||||
"эксперт по кинематографу",
|
|
||||||
"эксперт в области спорта",
|
|
||||||
"эксперт в онлайн-играх",
|
|
||||||
"эксперт по рецептам блюд",
|
|
||||||
"эксперт по английской грамматике",
|
|
||||||
"эксперт по русской грамматике",
|
|
||||||
"дружелюбный и полезный помощник преподавателя",
|
|
||||||
"лаконичный помощник",
|
|
||||||
"полезный помощник, следующий шаблонам",
|
|
||||||
"переводчик корпоративного жаргона на простой русский",
|
|
||||||
]
|
|
||||||
|
|
||||||
readme_url = "https://github.com/dKosarevsky/AI-Talks#readme"
|
|
||||||
ai_talks_url = "https://ai-talks.streamlit.app/"
|
|
||||||
|
|
||||||
en = Locale(
|
en = Locale(
|
||||||
ai_role_options=AI_ROLE_OPTIONS_EN,
|
ai_role_options=AI_ROLE_OPTIONS_EN,
|
||||||
ai_role_prefix="You are a female",
|
ai_role_prefix="You are a female",
|
||||||
@ -119,9 +86,10 @@ en = Locale(
|
|||||||
""",
|
""",
|
||||||
empty_api_handler=f"""
|
empty_api_handler=f"""
|
||||||
API key not found. Create `.streamlit/secrets.toml` with your API key.
|
API key not found. Create `.streamlit/secrets.toml` with your API key.
|
||||||
See [README.md]({readme_url}) for instructions or use the original [AI Talks]({ai_talks_url}).
|
See [README.md]({README_URL}) for instructions or use the original [AI Talks]({AI_TALKS_URL}).
|
||||||
""",
|
""",
|
||||||
)
|
)
|
||||||
|
|
||||||
ru = Locale(
|
ru = Locale(
|
||||||
ai_role_options=AI_ROLE_OPTIONS_RU,
|
ai_role_options=AI_ROLE_OPTIONS_RU,
|
||||||
ai_role_prefix="Вы девушка",
|
ai_role_prefix="Вы девушка",
|
||||||
@ -167,6 +135,6 @@ ru = Locale(
|
|||||||
""",
|
""",
|
||||||
empty_api_handler=f"""
|
empty_api_handler=f"""
|
||||||
Ключ API не найден. Создайте `.streamlit/secrets.toml` с вашим ключом API.
|
Ключ API не найден. Создайте `.streamlit/secrets.toml` с вашим ключом API.
|
||||||
Инструкции см. в [README.md]({readme_url}) или используйте оригинальный [AI Talks]({ai_talks_url}).
|
Инструкции см. в [README.md]({README_URL}) или используйте оригинальный [AI Talks]({AI_TALKS_URL}).
|
||||||
""",
|
""",
|
||||||
)
|
)
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
# mypy: ignore-errors
|
||||||
|
|
||||||
import streamlit as st
|
import streamlit as st
|
||||||
from bokeh.models import CustomJS
|
from bokeh.models import CustomJS
|
||||||
from bokeh.models.widgets import Button
|
from bokeh.models.widgets import Button
|
||||||
@ -71,7 +73,7 @@ def show_voice_input() -> None:
|
|||||||
if result:
|
if result:
|
||||||
if "GET_TEXT" in result and (
|
if "GET_TEXT" in result and (
|
||||||
result.get("GET_TEXT")["t"] != "" and result.get("GET_TEXT")["s"] != st.session_state.input["session"]):
|
result.get("GET_TEXT")["t"] != "" and result.get("GET_TEXT")["s"] != st.session_state.input["session"]):
|
||||||
st.session_state.input["text"] = result.get("GET_TEXT")["t"]
|
st.session_state.input["text"] = result.get("GET_TEXT")["t"] # type: ignore
|
||||||
tr.code(st.session_state.input["text"])
|
tr.code(st.session_state.input["text"])
|
||||||
st.session_state.input["session"] = result.get("GET_TEXT")["s"]
|
st.session_state.input["session"] = result.get("GET_TEXT")["s"]
|
||||||
if "GET_INTRM" in result and result.get("GET_INTRM") != "":
|
if "GET_INTRM" in result and result.get("GET_INTRM") != "":
|
||||||
|
5
setup.py
5
setup.py
@ -6,8 +6,9 @@ with open("requirements.txt") as f:
|
|||||||
|
|
||||||
setup(
|
setup(
|
||||||
name="ai-talks",
|
name="ai-talks",
|
||||||
version="0.8.997",
|
version="0.9.1",
|
||||||
packages=find_packages(),
|
packages=find_packages(),
|
||||||
|
include_package_data=True,
|
||||||
install_requires=requirements, # Use the parsed requirements here
|
install_requires=requirements, # Use the parsed requirements here
|
||||||
entry_points={
|
entry_points={
|
||||||
"console_scripts": [
|
"console_scripts": [
|
||||||
@ -28,4 +29,6 @@ setup(
|
|||||||
"Programming Language :: Python :: 3.11",
|
"Programming Language :: Python :: 3.11",
|
||||||
"Programming Language :: Python :: 3.12",
|
"Programming Language :: Python :: 3.12",
|
||||||
],
|
],
|
||||||
|
keywords="ai agi streamlit streamlit-component chat bot gpt llm",
|
||||||
|
python_requires=">=3.10",
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user