- Add XMPP_NICKNAME config in .env for custom MUC nick (fallback to JID username) - Add _get_muc_nick() helper: resolve nick with suffix fallback on conflict - Add _is_my_nick() helper: compare presence nick with expected nick per room - Handle 409 Conflict in _on_session_start: try nick alternatives (lily_, lily__) - Handle 409 Conflict in _muc_rejoin_coro: try nick alternatives with max 3 attempts - Stop retry when all nick variations exhausted (anti-ban: avoid infinite retry) - Reset nick suffix counter on successful join - Update _on_groupchat_message filter to use _is_my_nick()
30 lines
2.0 KiB
Python
30 lines
2.0 KiB
Python
import os
|
|
from dotenv import load_dotenv
|
|
|
|
load_dotenv()
|
|
|
|
# LLM Configuration
|
|
llm_baseurl = os.getenv("LLM_BASE_URL", default="http://localhost:11434/v1" )
|
|
llm_model = os.getenv("LLM_MODEL", default="granite4.1:8b" )
|
|
llm_api_key = os.getenv("LLM_API_KEY", default="ollama" )
|
|
llm_timeout = int( os.getenv("LLM_TIMEOUT", default="600" ) )
|
|
# Agent Configuration
|
|
AGENT_MAX_ITERATIONS = int( os.getenv("AGENT_MAX_ITERATIONS", default="10" ) )
|
|
# Tool Configuration (for future use)
|
|
MAX_TOOL_OUTPUT = int( os.getenv("MAX_TOOL_OUTPUT", default="4000" ) )
|
|
# RAG Configuration
|
|
RAG_PERSIST_DIR = os.getenv("RAG_PERSIST_DIR", default="chroma_db" )
|
|
# Embedding: ChromaDB ONNX default (all-MiniLM-L6-v2, lokal, tidak perlu API call)
|
|
# XMPP Configuration
|
|
XMPP_ENABLED = os.getenv("XMPP_ENABLED", default="False" ).strip().lower() in ("true", "1", "yes")
|
|
XMPP_USERNAME = os.getenv("XMPP_USERNAME", default="" )
|
|
XMPP_PASSWORD = os.getenv("XMPP_PASSWORD", default="" )
|
|
XMPP_MUC_ROOMS = os.getenv("XMPP_MUC_ROOMS", default="" )
|
|
XMPP_NICKNAME = os.getenv("XMPP_NICKNAME", default="" ) # custom nick MUC (kosong = pakai username)
|
|
|
|
# Humanize Delay Configuration (anti-bot detection)
|
|
READ_DELAY_MIN = float( os.getenv("READ_DELAY_MIN", default="1.0" ) ) # min reading delay (detik)
|
|
READ_DELAY_MAX = float( os.getenv("READ_DELAY_MAX", default="2.0" ) ) # max reading delay (detik)
|
|
TYPING_SPEED = float( os.getenv("TYPING_SPEED", default="15.0" ) ) # karakter per detik (kecepatan mengetik)
|
|
TYPING_MAX = float( os.getenv("TYPING_MAX", default="10.0" ) ) # batas max typing delay (detik)
|