feat(dimentorin): AI agent RAG (embedding materi -> Qdrant + chat via 9router)
- ENV: AI_LLM_BASE_URL/API_KEY/MODEL, AI_EMBEDDING_MODEL (gemini-embedding-001), QDRANT_URL
- ai_agent module: chunking materi, embed_text + chat_completion (9router, SSE parse), Qdrant repo (dimentorin_materi collection, 3072d cosine)
- routes: POST /ai/chat (RAG answer + sources), POST /ai/materials/{id}/index, POST /ai/reindex
- e2e verified: reindex 3 chunks; chat 'ownership' -> materi Rust paling relevan 0.88; chat 'endpoint axum' -> materi Axum 0.82; jawaban gronding konteks
This commit is contained in:
@@ -37,6 +37,11 @@ pub struct Env {
|
||||
pub midtrans_merchant_id: String,
|
||||
pub midtrans_client_key: String,
|
||||
pub midtrans_server_key: String,
|
||||
pub ai_llm_base_url: String,
|
||||
pub ai_llm_api_key: String,
|
||||
pub ai_llm_model: String,
|
||||
pub ai_embedding_model: String,
|
||||
pub qdrant_url: String,
|
||||
pub cors_allowed_origins: Vec<String>,
|
||||
}
|
||||
|
||||
@@ -79,6 +84,11 @@ impl std::fmt::Debug for Env {
|
||||
.field("midtrans_merchant_id", &self.midtrans_merchant_id)
|
||||
.field("midtrans_client_key", &"***")
|
||||
.field("midtrans_server_key", &"***")
|
||||
.field("ai_llm_base_url", &self.ai_llm_base_url)
|
||||
.field("ai_llm_api_key", &"***")
|
||||
.field("ai_llm_model", &self.ai_llm_model)
|
||||
.field("ai_embedding_model", &self.ai_embedding_model)
|
||||
.field("qdrant_url", &self.qdrant_url)
|
||||
.field("cors_allowed_origins", &self.cors_allowed_origins)
|
||||
.finish()
|
||||
}
|
||||
@@ -207,6 +217,20 @@ pub static ENV: Lazy<Env> = Lazy::new(|| {
|
||||
midtrans_merchant_id: get_env_with_warning("MIDTRANS_MERCHANT_ID", ""),
|
||||
midtrans_client_key: get_env_with_warning("MIDTRANS_CLIENT_KEY", ""),
|
||||
midtrans_server_key: get_env_with_warning("MIDTRANS_SERVER_KEY", ""),
|
||||
ai_llm_base_url: get_env_with_warning(
|
||||
"AI_LLM_BASE_URL",
|
||||
"https://9router.asepharyana.my.id/v1",
|
||||
),
|
||||
ai_llm_api_key: get_env_with_warning("AI_LLM_API_KEY", ""),
|
||||
ai_llm_model: get_env_with_warning("AI_LLM_MODEL", "text"),
|
||||
ai_embedding_model: get_env_with_warning(
|
||||
"AI_EMBEDDING_MODEL",
|
||||
"gemini/gemini-embedding-001",
|
||||
),
|
||||
qdrant_url: get_env_with_warning(
|
||||
"QDRANT_URL",
|
||||
"http://100.121.180.82:6333",
|
||||
),
|
||||
cors_allowed_origins: get_env_with_warning(
|
||||
"CORS_ALLOWED_ORIGINS",
|
||||
"https://gacha.imphnen.dev,https://imphnen.dev,https://dimentorin.imphnen.dev,https://backoffice.imphnen.dev,https://hackathon.imphnen.dev,https://qr.imphnen.dev,https://infra.imphnen.dev",
|
||||
|
||||
Reference in New Issue
Block a user