1
Ringkasan Proyek llm-python
Repository onlyphantom/llm-python adalah kumpulan materi instruksional, contoh kode, dan skrip Python yang memakai LLM lewat antarmuka seperti llamaindex, LangChain, OpenAI Agent SDK, Chroma, dan Pinecone README.md:1-51. Setiap contoh dirancang self-contained dan berfokus tunggal, sehingga pembaca dapat memilih pola pemakaian yang paling relevan dengan kebutuhannya README.md:52. Halaman ini memetakan isi repository, prasyarat, dan lisensinya; rincian teknis setiap topik ada di halaman lain.
Dua belas bagian dan berkas contohnya
README mencatat 14 part video tutorial beserta durasinya, mulai dari pengenalan OpenAI sampai aplikasi chat Streamlit README.md:17-323. Tabel berikut memetakan dua belas bagian dokumentasi ini ke berkas contoh yang menjadi tulangnya.
| # | Bagian | Berkas contoh utama |
|---|---|---|
| 1 | Ringkasan Proyek llm-python | README.md, LICENSE |
| 2 | Arsitektur Repository dan Peta Modul | utils/, assets/, news/, storage/ |
| 3 | Persiapan Lingkungan dan Konfigurasi API Key | requirements.txt, .env |
| 4 | Dasar LLM dan Embedding | 00_start.py, 17_embeddings.py |
| 5 | Pipeline RAG dengan LangChain | 01_qna.py |
| 6 | Indeks dan Query dengan LlamaIndex | 02_llama.py, 06_team.py |
| 7 | Vector Store: Chroma Lokal dan Pinecone | 18_chroma.py, 09_pinecone.py |
| 8 | Model Lokal dan HuggingFace | 05_hf.py, 07_custom.py |
| 9 | Prompt Programming dengan Guidance | 12_guidance_syntax.py, 12_guidance_roles.py |
| 10 | Caching dan Aplikasi Chat Streamlit | 13_caching_memory.py, 13_caching_sqlite.py, 14_streamlit.py |
| 11 | Text-to-SQL dan Analitik Data | 03_db.py, 15_sql.py, 16_repl.py |
| 12 | Pola Multi-Agent dengan OpenAI Agent SDK | 19_agents_handsoff.py sampai 24_agents_guardrails.py |
graph TD
readme["01 Ringkasan proyek: README.md, LICENSE"]
arch["02 Arsitektur repository: utils/, assets/, news/, storage/"]
env["03 Persiapan lingkungan: .env, requirements.txt"]
b04["04 Dasar LLM dan Embedding: 00_start.py, 17_embeddings.py"]
b05["05 Pipeline RAG: 01_qna.py"]
b06["06 Indeks LlamaIndex: 02_llama.py, 06_team.py"]
b07["07 Vector store: 18_chroma.py, 09_pinecone.py"]
b08["08 Model lokal dan HuggingFace: 05_hf.py, 07_custom.py"]
b09["09 Prompt programming: 12_guidance_syntax.py"]
b10["10 Caching dan Streamlit: 13_caching_sqlite.py, 14_streamlit.py"]
b11["11 Text-to-SQL: 03_db.py, 15_sql.py, 16_repl.py"]
b12["12 Pola multi-agent: 19_agents_handsoff.py sampai 24_agents_guardrails.py"]
api["utils/api_client.py retrieve_from_endpoint"]
tritonErr["ERROR: No matching distribution found for triton"]
readme --> arch --> env --> b04 --> b05 --> b06 --> b07 --> b08 --> b09 --> b10 --> b11 --> b12
arch --> api
api --> b12
env -.-> tritonErr
style readme fill:#f59e0b,color:#000
style env fill:#f59e0b,color:#000
style arch fill:#f59e0b,color:#000
style b06 fill:#336791,color:#fff
style b07 fill:#336791,color:#fff
style b10 fill:#8b5cf6,color:#fff
style b11 fill:#2d7d46,color:#fff
style b12 fill:#2d7d46,color:#fff
style tritonErr fill:#dc2626,color:#fff
%% fig: Alur dua belas bagian dokumentasi ke berkas contohnya
%% desc: Setiap node bagian menunjuk berkas contoh yang menjadi tulangnya, dari embedding dasar sampai pola multi-agent, lengkap dengan simpul konfigurasi API dan kegagalan pemasangan triton.Alur dari embedding dasar ke multi-agent
Contoh paling kecil hanya memanggil OpenAIEmbeddings pada satu string lalu mencetak vektornya 00_start.py:1-114. Variasi berikutnya menghitung cosine similarity antara satu query dan sembilan nama dokumen, lalu memilih yang tertinggi dengan np.argmax 17_embeddings.py:26-415.
Pada jalur retrieval, 01_qna.py memuat folder news lewat DirectoryLoader, memecahnya dengan CharacterTextSplitter(chunk_size=2500, chunk_overlap=0), membangun Chroma.from_documents, lalu menjawab empat pertanyaan 01_qna.py:8-316. 02_llama.py memakai SimpleDirectoryReader dan VectorStoreIndex.from_documents, mem-persist index ke storage, dan memuatnya kembali melalui StorageContext.from_defaults 02_llama.py:10-277. 06_team.py mengambil halaman web dengan TrafilaturaWebReader ke dalam collection chromadb.EphemeralClient() 06_team.py:10-208.
Lapisan storage diisi dua contoh: 18_chroma.py membuat collection saham berisi enam dokumen dengan metadata listed_in dan ticker 18_chroma.py:6-99, sedangkan 09_pinecone.py menyiapkan empat URL projekt-gutenberg untuk di-scrape 09_pinecone.py:28-3310.
Untuk model lokal, 05_hf.py meninggalkan remote Inference API dan beralih ke HuggingFacePipeline 05_hf.py:38-3911, sementara 07_custom.py mendefinisikan CustomLLM untuk llama_index 07_custom.py:14-2312. Pada prompt programming, 12_guidance_syntax.py memakai models.OpenAI dan gen() di dalam blok user() serta assistant() 12_guidance_syntax.py:11-1613.
Lapisan aplikasi memakai SQLiteCache(database_path=".langchain.db") untuk caching 13_caching_sqlite.py:13-1914 dan initialize_agent dengan tool ddg-search plus st.chat_input() untuk chat Streamlit 14_streamlit.py:10-2715. Analitik data dimulai dari create_sql_agent di atas sqlite:///academy/academy.db 03_db.py:10-19, berlanjut ke ChatGroq dengan agent_type="tool-calling" 15_sql.py:36-44, dan memakai PythonAstREPLTool untuk pertanyaan bebas atas dataframe 16_repl.py:30-34.
Ujung rangkaian adalah pola multi-agent: 19_agents_handsoff.py mendefinisikan tiga Agent dan menyerahkan handoffs ke Runner.run 19_agents_handsoff.py:7-3019. Pola guardrail memakai input_guardrail, output_guardrail, dan retrieve_from_endpoint 24_agents_guardrails.py:23-3520. Fungsi retrieve_from_endpoint mengirim header Authorization berisi SECTORS_API_KEY dan mengubah HTTPError menjadi SystemExit utils/api_client.py:12-2021.
Prasyarat dan kunci API
Quick Start README menetapkan empat langkah: clone repository, pip install -r requirements.txt, menyiapkan data di folder news, dan membuat .env berisi OPENAI_API_KEY README.md:76-8322. HUGGINGFACEHUB_API_TOKEN dan PINECONE_API_KEY bersifat opsional, sedangkan COHERE_API_KEY dan STABILITY_API_KEY dipakai lesson yang memanggil Cohere dan Stability AI README.md:81-8223. Berkas .env contoh memuat OPENAI_API_KEY, SECTORS_API_KEY, GROQ_API_KEY, HUGGINGFACEHUB_API_TOKEN, PINECONE_API_KEY, DEEPSEEK_API_KEY, COHERE_API_KEY, dan STABILITY_API_KEY README.md:87-10124. Langkah teknisnya dibahas di Persiapan Lingkungan dan Konfigurasi API Key.
Versi pustaka yang dipatok
requirements.txt mematok langchain==1.2.10 requirements.txt:6025, llama-index==0.14.15 requirements.txt:7126, openai==2.21.0 dan openai-agents==0.9.2 requirements.txt:93-94, guidance==0.3.1 requirements.txt:44, chromadb==1.5.0 requirements.txt:13-14, huggingface_hub==1.4.1 requirements.txt:52, langchain-groq==1.1.2 requirements.txt:64, dan pinecone>=3.0.0 requirements.txt:101.
CHANGES.md mencatat perbaikan kompatibilitas untuk LangChain 1.x, llama_index 0.10+, ChromaDB 1.x, dan OpenAI API 1.x; galat awalnya berbunyi AttributeError: 'NoneType' object has no attribute 'info' CHANGES.md:3-1233. ChromaDB memakai pydantic.v1.BaseSettings yang tidak lagi didukung pada Python 3.14+, sehingga environment disarankan memakai Python 3.12 CHANGES.md:62-6634.
Jebakan penamaan berkas
⚠️ Beberapa rujukan di README tidak cocok dengan nama berkas sebenarnya. README menyebut
22_agents_critic.pyuntuk pola Judge and Critic README.md:5135, padahal berkas di repository bernama22_agents_judge_critic.py. README juga mencontohkanpython 6_team.pyREADME.md:10536, sedangkan berkasnya06_team.pydengan nol di depan.
⚠️ Paket
tritonhanya didukung pada arsitektur x86_64; kegagalan pemasangan muncul sebagaiERROR: No matching distribution found for tritonREADME.md:115-11637.
Lisensi
Repository dilisensikan MIT, Copyright (c) 2023 Samuel Chan LICENSE:1-3. README menutup dengan baris MIT © [Supertype](https://supertype.ai) 2024 README.md:123-12538.