Spaces:
Sleeping
Clare AI + Weaviate ๆๆฏๆถๆๆๆกฃ
๐ ็ฎๅฝ
๐ฏ ็ณป็ปๆฆ่ฟฐ
Clare AI ๆฏไธไธชๅบไบ RAG (Retrieval-Augmented Generation) ็ๆบ่ฝๆๅญฆๅฉๆ๏ผ้่ฟ Weaviate Cloud ๅ้ๆฐๆฎๅบๆไพ่ฏพ็จ็ฅ่ฏๆฃ็ดข่ฝๅใ
ๆ ธๅฟๅ่ฝ
- ๅคๆจกๅผๆๅญฆ๏ผๆฆๅฟต่งฃ้ใ่ๆ ผๆๅบๅผ่พ ๅฏผใ่่ฏๅๅคใไฝไธๅฉๆใๅฟซ้ๆป็ป
- ็ฅ่ฏๆฃ็ดข๏ผไป 151+ ไธช่ฏพ็จๆๆกฃ๏ผPDFใDOCXใไปฃ็ ็ญ๏ผไธญๆฃ็ดข็ธๅ ณๅ ๅฎน
- ไผ่ฏ่ฎฐๅฟ๏ผ่ท่ธชๅญฆ็ๅผฑ้กนใ่ฎค็ฅ็ถๆใๅญฆไน ่ฟๅบฆ
- ๅค่ฏญ่จๆฏๆ๏ผไธญ่ฑๆๅ่ฏญๅฏน่ฏ
๐๏ธ ๆถๆๅพ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Hugging Face Space โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ ClareVoice (Gradio App) โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ Frontend: Gradio UI โ โ โ
โ โ โ - Chat Interface โ โ โ
โ โ โ - File Upload โ โ โ
โ โ โ - Session Management โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ Core Logic (clare_core.py) โ โ โ
โ โ โ - LLM: GPT-4.1-mini (OpenAI) โ โ โ
โ โ โ - Prompt Engineering โ โ โ
โ โ โ - Session Memory โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ RAG Engine (rag_engine.py) โ โ โ
โ โ โ - Local FAISS (ไธไผ ๆไปถ) โ โ โ
โ โ โ - PDF/DOCX Parsing โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ โ HTTPS + API Key โ
โ โผ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Weaviate Cloud (GCP) โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Collection: GenAICourses โ โ
โ โ - 151+ ๆๆกฃๅ (chunks) โ โ
โ โ - Vector Embeddings (384-dim) โ โ
โ โ - Metadata (source_file, section) โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โฒ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Index Builder (ๆฌๅฐ/CI) โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ build_weaviate_index.py โ โ
โ โ - ่ฏปๅ GENAI COURSES/ ็ฎๅฝ โ โ
โ โ - Embedding: sentence-transformers/all-MiniLM-L6-v2 โ โ
โ โ - ไธไผ ๅฐ Weaviate Cloud โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ ๏ธ ๆๆฏๆ
ๅ็ซฏๅฑ
- Gradio 6.0+: Web UI ๆกๆถ๏ผๆฏๆๅฎๆถๅฏน่ฏใๆไปถไธไผ
- Python 3.11: ่ฟ่ก็ฏๅข
ๅ็ซฏๅฑ
- OpenAI GPT-4.1-mini: ไธป่ฆ LLM๏ผ็จไบ็ๆๅ็ญ
- LangChain: LLM ็ผๆๆกๆถ
- LlamaIndex: ๅ้ๆฃ็ดขๆกๆถ
ๅ้ๆฐๆฎๅบ
- Weaviate Cloud: ๆ็ฎกๅ้ๆฐๆฎๅบ๏ผGCP๏ผ
- Collection:
GenAICourses - Embedding Model:
sentence-transformers/all-MiniLM-L6-v2(384็ปด) - ๆๆกฃ็ฑปๅ: PDF, DOCX, TXT, PY, IPYNB
- Collection:
Embedding ๆจกๅ
- ๅปบ็ดขๅผ:
sentence-transformers/all-MiniLM-L6-v2(ๅ ่ดน๏ผๆฌๅฐ่ฟ่ก) - ๆฅ่ฏข: ไธๅปบ็ดขๅผไฝฟ็จ็ธๅๆจกๅ๏ผไฟ่ฏๅ้็ฉบ้ดไธ่ด๏ผ
ๆๆกฃ่งฃๆ
- unstructured.io: PDF ่งฃๆ๏ผไผๅ ๏ผ
- pypdf: PDF ่งฃๆ๏ผ้็บงๆนๆก๏ผ
- python-docx: DOCX ่งฃๆ
๐ง ๆ ธๅฟ็ปไปถ
1. ClareVoice App (app.py)
่่ดฃ: ไธปๅบ็จๅ ฅๅฃ๏ผๅค็็จๆทไบคไบ
ๅ ณ้ฎๅ่ฝ:
- Gradio UI ๆธฒๆ
- ็จๆทไผ่ฏ็ฎก็
- ่ฐ็จ RAG ๆฃ็ดขๅ LLM ็ๆ
- Weaviate ็ด่ฟๆฃ็ดข
ๅ ณ้ฎไปฃ็ :
# Weaviate ๆฃ็ดข๏ผไผๅ
๏ผ
if USE_WEAVIATE_DIRECT:
course_chunks = _retrieve_from_weaviate(message)
# ๆฌๅฐ FAISS๏ผไธไผ ๆไปถ๏ผ
rag_context_text = retrieve_relevant_chunks(message, rag_chunks)
2. RAG Engine (rag_engine.py)
่่ดฃ: ๆฌๅฐๆไปถๅ้ๅๅๆฃ็ดข
ๅ่ฝ:
- ่งฃๆไธไผ ็ PDF/DOCX
- ๆๅปบ FAISS ็ดขๅผ๏ผๅ ๅญ๏ผ
- ๅ้็ธไผผๅบฆๆฃ็ดข
3. Clare Core (clare_core.py)
่่ดฃ: LLM ่ฐ็จๅ Prompt ๆๅปบ
ๅ่ฝ:
- ๆๅปบๅค่ฝฎๅฏน่ฏไธไธๆ
- ๆดๅ RAG ๆฃ็ดข็ปๆ
- ็ฎก็ไผ่ฏ่ฎฐๅฟ๏ผๅผฑ้กนใ่ฎค็ฅ็ถๆ๏ผ
- ็ๆๆๅญฆๅ็ญ
4. Weaviate ๆฃ็ดข (app.py โ _retrieve_from_weaviate)
่่ดฃ: ไป Weaviate Cloud ๆฃ็ดข่ฏพ็จ็ฅ่ฏ
ๆต็จ:
- ๅ ่ฝฝ embedding ๆจกๅ๏ผ็ผๅญ๏ผ
- ่ฟๆฅ Weaviate Cloud
- ๅฐ็จๆท้ฎ้ข็ผ็ ไธบๅ้
- ๅ้็ธไผผๅบฆๆ็ดข๏ผtop_k=5๏ผ
- ่ฟๅ็ธๅ ณๆๆกฃๅ
ๅ ณ้ฎ็นๆง:
- ่ถ ๆถไฟๆค: 45็ง่ถ ๆถ๏ผ้ฟๅ ้ปๅก
- ๆจกๅ้ข็ญ: ๅฏๅจๆถๅๅฐๅ ่ฝฝ๏ผ้ฟๅ ้ฆๆฌกๆฅ่ฏขๆ ข
- ้่ฏฏ้็บง: ๅคฑ่ดฅๆถ้้ป่ฟๅ็ฉบ๏ผไธๅฝฑๅไธปๆต็จ
๐ ๆฐๆฎๆต
็จๆทๆ้ฎๆต็จ
1. ็จๆท่พๅ
ฅ้ฎ้ข
โ
โผ
2. ๆฃๆตๆฏๅฆไธบๅญฆๆฏๆฅ่ฏข (is_academic_query)
โ
โโ ๆฏ โ ่งฆๅ RAG ๆฃ็ดข
โ โ
โ โโ Weaviate ๆฃ็ดข (ไผๅ
)
โ โ โโ ่ฟๅ่ฏพ็จๆๆกฃๅ
โ โ
โ โโ ๆฌๅฐ FAISS ๆฃ็ดข (ไธไผ ๆไปถ)
โ โโ ่ฟๅๆๆกฃๅ
โ
โโ ๅฆ โ ่ทณ่ฟ RAG
โ
โผ
3. ๆๅปบ Prompt
โโ System Prompt (Clare ่บซไปฝ)
โโ Session Memory (ๅผฑ้กนใ่ฎค็ฅ็ถๆ)
โโ RAG Context (ๆฃ็ดขๅฐ็ๆๆกฃ)
โโ User Message
โ
โผ
4. ่ฐ็จ OpenAI API (GPT-4.1-mini)
โ
โผ
5. ่ฟๅๅ็ญ + ๆดๆฐไผ่ฏๅๅฒ
็ดขๅผๆๅปบๆต็จ
1. ๆฌๅฐ่ฟ่ก build_weaviate_index.py
โ
โผ
2. ่ฏปๅ GENAI COURSES/ ็ฎๅฝ
โโ ๆฏๆๆ ผๅผ: .md, .pdf, .txt, .py, .ipynb, .docx
โโ ้ๅฝๆซๆๆๆๅญ็ฎๅฝ
โ
โผ
3. ๆๆกฃๅๅ (LlamaIndex SimpleDirectoryReader)
โโ ่ชๅจๅๅ๏ผไฟ็ๅ
ๆฐๆฎ
โ
โผ
4. Embedding ็ผ็
โโ sentence-transformers/all-MiniLM-L6-v2
โ
โผ
5. ไธไผ ๅฐ Weaviate Cloud
โโ Collection: GenAICourses
โโ ๅ้ + ๅ
ๆฐๆฎ (source_file, section)
โโ ้ช่ฏ object count
๐ ้จ็ฝฒๆถๆ
Hugging Face Space (ClareVoice)
้จ็ฝฒๆนๅผ: Docker Space
Dockerfile ๅ ณ้ฎ้ ็ฝฎ:
FROM python:3.11-slim
# ๅฎ่ฃ
็ณป็ปไพ่ต (libxcb for unstructured)
RUN apt-get update && apt-get install -y libxcb1 libxcb-xinerama0
# ๅผบๅถๅ็บง huggingface_hub>=1.3.0
RUN pip install --upgrade "huggingface_hub>=1.3.0,<2.0"
# ๅฎ่ฃ
ไพ่ต
RUN pip install -r requirements.txt
็ฏๅขๅ้ (Secrets):
OPENAI_API_KEY: OpenAI API ๅฏ้ฅWEAVIATE_URL: Weaviate Cloud REST ๅฐๅWEAVIATE_API_KEY: Weaviate API KeyWEAVIATE_COLLECTION: ้ๅๅ๏ผ้ป่ฎคGenAICourses๏ผ
ๅฏๅจๆต็จ:
- ๅ ่ฝฝ็ฏๅขๅ้
- ๅๅฐ้ข็ญ Weaviate embedding ๆจกๅ
- ๅฏๅจ Gradio ๆๅก๏ผ็ซฏๅฃ 7860๏ผ
Weaviate Cloud
ๆ็ฎก: Google Cloud Platform (GCP)
้ ็ฝฎ:
- Cluster URL:
https://riiqvgc7tuum6cgwhik9ra.c0.us-west3.gcp.weaviate.cloud - Authentication: API Key
- Collection Schema: ่ชๅจๅๅปบ๏ผLlamaIndex ็ฎก็๏ผ
ๆฐๆฎ่งๆจก:
- ๆๆกฃๆฐ้: 151+ ๆไปถ
- ๆๆกฃๅๆฐ: ~917 objects
- ๅ้็ปดๅบฆ: 384 (all-MiniLM-L6-v2)
๐ก ๅ ณ้ฎๆๆฏๅณ็ญ
1. ไธบไปไน้ๆฉ Weaviate Cloud๏ผ
ไผๅฟ:
- โ ๆ็ฎกๆๅก: ๆ ้่ชๅปบๆฐๆฎๅบ๏ผ้ไฝ่ฟ็ปดๆๆฌ
- โ ้ซๆง่ฝ: ๅ้ๆฃ็ดขๅปถ่ฟ <100ms
- โ ๅฏๆฉๅฑ: ๆฏๆๅคง่งๆจกๆๆกฃๅบ
- โ API ็ฎๅ: RESTful API๏ผๆไบ้ๆ
ๅฏนๆฏๅ ถไปๆนๆก:
- โ ๆฌๅฐ FAISS: ๅ ๅญ้ๅถ๏ผๆ ๆณๆไน ๅ
- โ Pinecone: ๆๆฌ่พ้ซ
- โ ่ชๅปบ Weaviate: ้่ฆๆๅกๅจๅ่ฟ็ปด
2. ไธบไปไนไฝฟ็จ sentence-transformers ่้ OpenAI Embeddings๏ผ
ๅๅ :
- โ ๆๆฌ: ๅ ่ดน๏ผๆ API ่ฐ็จ่ดน็จ
- โ ไธ่ดๆง: ๅปบ็ดขๅผๅๆฅ่ฏขไฝฟ็จๅไธๆจกๅ๏ผไฟ่ฏๅ้็ฉบ้ดไธ่ด
- โ ็ฆป็บฟ่ฝๅ: ๆฌๅฐ่ฟ่ก๏ผไธไพ่ตๅค้จ API
ๆ่กก:
- โ ๏ธ ๆง่ฝ: OpenAI
text-embedding-3-small(1536็ปด) ๅฏ่ฝๆดๅ็กฎ - โ ๏ธ ๅปถ่ฟ: ้ฆๆฌกๅ ่ฝฝๆจกๅ้่ฆ 10-30 ็ง๏ผๅทฒ้่ฟ้ข็ญ่งฃๅณ๏ผ
3. ไธบไปไน้็จ Docker Space ่้ Gradio SDK๏ผ
ๅๅ :
- โ
ไพ่ตๆงๅถ: ๅฏไปฅๅผบๅถๅ็บง็นๅฎๅ
๏ผๅฆ
huggingface_hub๏ผ - โ
็ณป็ปๅบ: ๅฏไปฅๅฎ่ฃ
libxcb็ญ็ณป็ปไพ่ต - โ ็ตๆดปๆง: ๅฎๅ จๆงๅถๆๅปบ่ฟ็จ
4. ๅๆฃ็ดข็ญ็ฅ๏ผWeaviate + FAISS๏ผ
่ฎพ่ฎก:
- Weaviate: ่ฏพ็จ็ฅ่ฏๅบ๏ผ151+ ๆๆกฃ๏ผๆไน ๅ๏ผ
- FAISS: ็จๆทไธไผ ๆไปถ๏ผไธดๆถ๏ผๅ ๅญ๏ผ
ไผๅฟ:
- โ ่ฏพ็จ็ฅ่ฏ็จณๅฎๅฏ็จ
- โ ็จๆทๆไปถ็ตๆดปๅค็
- โ ้็บงๆนๆก๏ผWeaviate ๅคฑ่ดฅๆถไปๆ FAISS
๐ ๆง่ฝๆๆ
ๆฃ็ดขๆง่ฝ
- Weaviate ๆฃ็ดข: ~500-1000ms๏ผๅซ็ฝ็ปๅปถ่ฟ๏ผ
- FAISS ๆฃ็ดข: ~10-50ms๏ผๅ ๅญๆฃ็ดข๏ผ
- Embedding ็ผ็ : ~100-300ms๏ผ้ฆๆฌก้ๅ ่ฝฝๆจกๅ๏ผ
LLM ๅๅบ
- GPT-4.1-mini: ~2-5็ง๏ผๅๅณไบๅ็ญ้ฟๅบฆ๏ผ
็ณป็ป่ตๆบ
- ๅ ๅญ: ~2-4GB๏ผๅซ embedding ๆจกๅ๏ผ
- CPU: ไธญ็ญ่ด่ฝฝ๏ผembedding ่ฎก็ฎ๏ผ
๐ ๅฎๅ จไธ้็ง
API ๅฏ้ฅ็ฎก็
- โ ไฝฟ็จ Hugging Face Secrets๏ผๅ ๅฏๅญๅจ๏ผ
- โ ไธๅจไปฃ็ ไธญ็กฌ็ผ็ ๅฏ้ฅ
ๆฐๆฎ้็ง
- โ ็จๆทไผ่ฏๆฐๆฎไธๆไน ๅ๏ผไป ๅ ๅญ๏ผ
- โ Weaviate ไป ๅญๅจ่ฏพ็จๆๆกฃ๏ผๅ ฌๅผๅ ๅฎน๏ผ
- โ ็จๆทไธไผ ๆไปถไป ็จไบๅฝๅไผ่ฏ
๐ ๅทฒ็ฅ้ฎ้ขไธ่งฃๅณๆนๆก
1. huggingface_hub ็ๆฌๅฒ็ช
้ฎ้ข: HF Space ้ข่ฃ
ๆง็ (0.36.2)๏ผtransformers ้่ฆ >=1.3.0
่งฃๅณ:
- Dockerfile ไธญๅผบๅถๅ็บง
- App ๅฏๅจๆถ monkey-patch
is_offline_mode
2. Gradio 6.0 API ๅๆด
้ฎ้ข: Chatbot ไธๅๆฏๆ type="tuples"๏ผๆนไธบ messages ๆ ผๅผ
่งฃๅณ: ๆทปๅ ๆ ผๅผ่ฝฌๆขๅฝๆฐ _tuples_to_messages / _messages_to_tuples
3. Embedding ๆจกๅ้ฆๆฌกๅ ่ฝฝๆ ข
้ฎ้ข: ้ฆๆฌกๆฃ็ดข้่ฆ 10-30 ็งๅ ่ฝฝๆจกๅ
่งฃๅณ: ๅฏๅจๆถๅๅฐ้ข็ญ๏ผ_warmup_weaviate_embed๏ผ
๐ ๆป็ป
Clare AI ้็จ RAG + LLM ๆถๆ๏ผ้่ฟ Weaviate Cloud ๆไพ็จณๅฎ็่ฏพ็จ็ฅ่ฏๆฃ็ดข่ฝๅใ็ณป็ป่ฎพ่ฎกๆณจ้๏ผ
- ๅฏ้ ๆง: ๅค้้็บงๆนๆก๏ผ็กฎไฟๆๅกๅฏ็จ
- ๆง่ฝ: ๆจกๅ้ข็ญใ่ถ ๆถไฟๆคใ็ผๅญๆบๅถ
- ๅฏๆฉๅฑ: ๆ็ฎกๆๅก๏ผๆไบๆฉๅฑๆๆกฃๅบ
- ๆๆฌ: ไฝฟ็จๅ ่ดน embedding ๆจกๅ๏ผ้ไฝ่ฟ่ฅๆๆฌ
ๆๆกฃ็ๆฌ: v1.0
ๆๅๆดๆฐ: 2026-02-11
็ปดๆค่
: Clare AI Team