
ćčŖę²»ä¼DXš»ļ¼ććććććććć°ć©ćć¼ć2ę„ć§ä½ć£ćļ¼Googlećć©ć¤ććAIę¤ē“¢ć§ććRAGćć¼ć«ć®čØé²ć
ćÆććć«
ā»ę¬čØäŗć§ćÆć³ć¼ćéē¤ŗćÆććć¾ććć2ę„ć§ä½ć£ććć®ć®čŖæę»ćāćć¾ćāćč¦ć¦ćć ććć
ććć§ćÆćē§ć2ę„éå„®éļ¼ććGooglećć©ć¤ććAIę¤ē“¢ć§ććRAGćć¼ć«ć«ć¤ćć¦ć®å 容ćć¾ćØćć¾ććRAGćØćÆćŖććććļ¼ę„ć»ć©åć«ē„ććēµéØćć»ćØćć©ćŖćē§ććć©ć®ććć«ćć¦ćć®ćć¼ć«ćä½ćäøććć®ćććć®éēØćå¦ć³ćå ±ęćć¾ććććććē„ććŖćććØćē„ććŖćć£ćććć
ćæć¤ćć«č©ę¬ŗć§ćććććēØåŗ¦ęč”ēØčŖćÆē„ć£ć¦ć¦ćę„åøøć§AI触ć£ć¦ćŖććØćØć¦ćļ¼ę„ć§ć§ćććććŖćć®ć§ćÆććć¾ćććć
ęęē©ć§ććčŖę²»ä¼ēØGooglećć©ć«ćć®äøéØćę¢ē“¢ćč³ŖåćććØć¬ć¹ćčæć£ć¦ćććććÆčŖćæé£ć°ćć¦ćć ććć
ļ¼ćć©ć«ćå
ć®40ēØć®ćć”ć¤ć«ććchrma.dbä½ęćļ¼
č³Ŗåćå „åćć¦ćć ćć: ä»å¾ć®čŖę²»ä¼ćčćććØļ¼
INFO:root:Querying with question: ä»å¾ć®čŖę²»ä¼ćčćććØļ¼
INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings "HTTP/1.1 200 OK"
INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
åē:
ä»å¾ć®čŖę²»ä¼ćčćććØćććć¤ćć®éč¦ćŖčŖ²é”ćØę¹åę§ćęµ®ćć³äøććć¾ćć
ć¾ććčŖę²»ä¼ć®ē¶ē¶ēćŖéå¶ć«é¢ćć¦ćÆćē¾č”ć®ä½å¶ć§ćÆä»»ęć1幓ć§ćććććē¶ē¶ććę¤čØćé£ćććØććåé”ćććć¾ćććć®ćććć³ćć»ć³å§å”ä¼ćé²ē½éØä¼ć®ćććŖę£å¼ćŖēµē¹ćØćć¦ę“»åććåæ č¦ććććØććć¦ćć¾ćć
-----éäøēē„ć500ęå仄äøćÆåēć-------
ćć©ć®äøē®ć§ćåå ć§ćććÆćććØć®č¦č§£ćē¤ŗććć¦ćććå°åć®é£ęŗćå¼·åććććØćčŖę²»ä¼ć®ę“»ę§åć«ć¤ćŖććć§ćććć
仄äøć®ććć«ćä»å¾ć®čŖę²»ä¼ćÆćēµē¹ć®åę§ēÆćé«é½¢åćøć®åƾåæćå°åę“»åć®ę“»ę§åćéćć¦ćććęē¶åÆč½ć§åå åć®éå¶ćē®ęćåæ č¦ćććć¾ćć
čŖę²»ä¼DXęØé²ććććć®ęę¦
čŖę²»ä¼DXę“»åćęØé²ć¬ćć«ćć®ē§ććć®ćććøć§ćÆćć«åćēµćć«ćÆćć¼ćć«ććććć§ććććAIććŖććØććć¦ćććć ćććØęę¦ć
å°åć®ę
å ±ćå¹ēēć«ē®”ēććä½ę°ć«ęä¾ććććć®ęꮵćØćć¦ćAIćę“»ēØććę¤ē“¢ćć¼ć«ćåæ
č¦ć ćØęććć®ć§ćććć®ęč”ēćŖćć¼ćć«ćÆććÆćAIćē°”åć«ä¹ćč¶ćć¦ććć¾ćććå°åć®äŗŗć
ć«ćØć£ć¦ä½æććććć·ć¹ćć ćä½ćććØć«ć
LLMćØć®åŗä¼ć
ćØćć£ć¦ććLLMć£ć¦ä½ļ¼ćperplexityć«čćć¦ć大ćć¦čŖæć¹ćććć«éå§ććŖććØćŖćčŖćć§ććØććććććć¾ć§ć®ććć°ć©ćć³ć°ēµéØć§ćÆčććććŖćć£ććććŖćčŖē¶čØčŖå¦ēć®åćåććććØć§ćććē“ęēćŖć¤ć³ćæć¼ćć§ć¼ć¹ćå®ē¾ć§ććć®ć§ćÆćŖććć
ćŖćGooglećć©ć¤ćAIę¤ē“¢ćć¼ć«ćä½ćććØęć£ćć®ć
Googlećć©ć¤ććÆå¤ćć®äŗŗć«ćØć£ć¦čŗ«čæćŖćć¼ć«ć§ććććć®äøć®ę
å ±ćå¹ēēć«ę¤ē“¢ććććØćÆé£ćććØęćć¦ć¾ććéå»ć®ē“ćć¼ćæćčØ大ć«ć¹ćć£ć³ććčŖ°ćč¦ē“ććć ćć®ćć”ć¤ć«ćć©ć®ä¼ę„ć§ćååØććāćć©ć«ćę¤ē“¢ć®ēµéØå¤ć ćć§å±
ę®ć£ć¦ćå¤ę Ŗē¤¾å”āćÆčŖę²»ä¼ć«ćÆććŖććć
åæ
č¦ę
å ±ćŖć©ē¹ć«ćŖćć ćććć©ćä½ćčćććęć«ę¢ććććć«ć ććć¦ćććććØćAIćę“»ēØććę¤ē“¢ćć¼ć«ćéēŗććććØć§ćę
å ±ć®åÆč¦åćØć¢ćÆć»ć¹ć®åäøćē®ęćļ¼ļ¼
RAGćć¼ć«ćØćÆļ¼
3ę„åć«ē„ć£ććć
RAGļ¼Retrieval-Augmented Generationļ¼ć®åŗę¬ę¦åæµ
RAGćÆćę å ±ę¤ē“¢ćØēęćēµćæåćććå¼·åćŖęę³ć§ćććć®ęč”ćēØććććØć§ćć¦ć¼ć¶ć¼ćę±ććę å ±ćčæ éć«åå¾ććććć«ćć®ę å ±ćåŗć«ććčŖē¶ćŖåæēćēęććććØćåÆč½ć«ćŖćć¾ćć
ćŖććć®ęč”ćē“ äŗŗć§ćä½æććć®ć
RAGćÆćč¤éćŖć¢ć«ć“ćŖćŗć ćčå¾ć«ęć”ćŖććććć¦ć¼ć¶ć¼ć«ćØć£ć¦ćÆć·ć³ćć«ćŖć¤ć³ćæć¼ćć§ć¼ć¹ćęä¾ćć¾ććććć«ćććććć°ć©ćć³ć°ć®ēµéØćå°ćŖćē§ć®ćććŖē“ äŗŗć§ććå¹ęēć«ę“»ēØć§ćććØć®ććØć
å®éć®ę“»ēØć·ć¼ć³
RAGćć¼ć«ćÆććć¾ćć¾ćŖć·ć¼ć³ć§ę“»ēØåÆč½ć§ćä¾ćć°ćčŖę²»ä¼ć®ä¼č°č³ęćä½ę°ććć®åćåććć«åƾććčæ éćŖåæēćŖć©ć幓åŗ¦ę«ē·ä¼ć«ćŖć£ćććććććććčØć£ć¦ććäŗŗćåŗć¦ććć®ć§ććć®åƾēćććć ććLINEå ¬å¼ć§åēć§ććććć«ććććØęć£ć¦ć¾ćć
éēŗē°å¢ćØä½æēØęč”
ä½æēØććäø»č¦ęč”ć¹ćæććÆ
ē§ććć®ćććøć§ćÆćć§ä½æēØććęč”ć¹ćæććÆć«ć¤ćć¦čŖ¬ęćć¾ććPythonćäøåæć«ćGoogle Drive APIćOpenAIć®APIćę“»ēØććć¼ćæć®åå¾ćå¦ēćč”ćć¾ććććććć®ęč”ćć©ć®ććć«é£ęŗććå Øä½ć®ć·ć¹ćć ćę§ęćć¦ććć®ćć
ćć®ć·ć¹ćć ćÆćGoogle Driveäøć®ććć„ć”ć³ćļ¼PDFćDOCXćGoogle Docsļ¼ćę“»ēØććRAGļ¼Retrieval Augmented Generationļ¼ć·ć¹ćć ć§ćć
čŖčؼé¢ć§ćÆćGoogle Cloud Consoleć§OAuth 2.0ćÆć©ć¤ć¢ć³ććä½ęćććć¹ćÆćććć¢ććŖć±ć¼ć·ć§ć³ćØćć¦čŖčؼćč”ćć¾ćć
čŖčؼę å ±ļ¼client_idćclient_secretļ¼ćØę“ę°ćć¼ćÆć³ļ¼refresh_tokenļ¼ćÆē°å¢å¤ę°ćØćć¦.envćć”ć¤ć«ć§ē®”ēćććć»ćć„ć¢ćŖčŖčؼććć¼ćå®ē¾ć
ććć„ć”ć³ćå¦ēć§ćÆćGoogle Drive APIćä½æēØćć¦ęå®ćć©ć«ćå ć®ćć”ć¤ć«ćåå¾ćććć”ć¤ć«ćæć¤ćć«åæćć¦é©åćŖę¹ę³ć§ććć¹ćę½åŗćč”ćć¾ćļ¼
ć»PDFćć”ć¤ć«ļ¼PyPDF2ć«ććććć¹ćę½åŗ
ććććććććę½åŗē²¾åŗ¦åäøć®ćććVision Cloudć«å¤ę“ććć
ć»DOCXćć”ć¤ć«ļ¼python-docxć«ććč§£ę
ć»Google Docsļ¼Drive APIć®exportć”ć½ććć§ćć¬ć¼ć³ććć¹ćåå¾
ę½åŗćććććć¹ććÆćLangChainć®RecursiveCharacterTextSplitterć§é©åćŖćµć¤ćŗć«åå²ćććOpenAI Embeddingsćä½æēØćć¦ććÆćć«åććć¾ćććććć®ććÆćć«ćÆChromaDBć«ę°øē¶åćććå¾ē¶ć®ę¤ē“¢ć§åå©ēØåÆč½ć§ćć
č³Ŗååæēć§ćÆćć¦ć¼ć¶ć¼ć®č³Ŗåć«é¢é£ććęęøćChromaDBććę¤ē“¢ćć
ććććć³ć³ććć¹ććØćć¦OpenAI GPT-4ć¢ćć«ć«ęä¾ććććØć§ć
ęęøć«åŗć„ććę£ē¢ŗćŖåēćēęćć¾ćć
ć·ć¹ćć ć®ę“ę°ē®”ēćÆęč»ć§ć--refreshćŖćć·ć§ć³ć«ććććÆćć«ć¹ćć¢ć®åę§ēÆćć--folder-idć«ććē°ćŖććć©ć«ćć®ęå®ćåÆč½ć§ćć
ććć«ćććēµē¹ć®ęęøćć¼ć¹ćå®ęēć«ę“ę°ććŖććć
ęę°ć®ę å ±ć«åŗć„ććč³Ŗååæēć·ć¹ćć ćē¶ęć§ćć¾ćć
éēŗć«åæ č¦ć ć£ćć¹ćć«ć»ćć
åæ č¦ć ć£ćć¹ćć«ć»ććć«ć¤ćć¦ćčØåćć¾ććććć°ć©ćć³ć°ć®åŗē¤ē„čć ćć§ćŖććAPIć®ä½æćę¹ććć¼ćæå¦ēć®ęč”ćå°ćåæ č¦ć
ćPythonåŗē¤ć
- Python 3.10仄äøć®åŗę¬ęę³
- éåęå¦ēļ¼async/awaitļ¼
- ē°å¢å¤ę°ć®ę±ćļ¼python-dotenvļ¼
- ä¾å¤å¦ēćØćć®ć³ć°
- ć³ćć³ćć©ć¤ć³å¼ę°ć®å¦ēļ¼argparseļ¼
ćGoogle APIé¢é£ć
- Google Cloud Consoleć®åŗę¬ęä½
- OAuth 2.0čŖčؼć®ä»ēµćæćØå®č£
- Google Drive APIć®ä½æēØę¹ę³
- ćć”ć¤ć«äø覧åå¾
- ćć”ć¤ć«ćć¦ć³ćć¼ć
- Google Docsć®ćØćÆć¹ćć¼ć
ćććć„ć”ć³ćå¦ēć
- PDFćć”ć¤ć«å¦ēļ¼PyPDF2ļ¼
- Wordćć”ć¤ć«å¦ēļ¼python-docxļ¼
- ććć¹ćå¦ēćØę£č¦å
- ęåćØć³ć³ć¼ćć£ć³ć°å¦ē
ćLangChainć
- LangChainć®åŗę¬ę¦åæµ
- ććć¹ćåå²ļ¼TextSplitterļ¼
- ććÆćć«ć¹ćć¢ć®ęä½
- RAGćć§ć¼ć³ć®ę§ēÆ
- ććć³ćććØć³ćøćć¢ćŖć³ć°
ćććÆćć«ćć¼ćæćć¼ć¹ć
- ChromaDBć®åŗę¬ę¦åæµ
- ććÆćć«ć¹ćć¢ć®ę°øē¶å
- é”ä¼¼åŗ¦ę¤ē“¢ć®ä»ēµćæ
- ćØć³ćććć£ć³ć°ć®åŗē¤
ćOpenAI APIć
- APIčŖčؼćØčØå®
- Embeddingsć¢ćć«ć®ä½æēØ
- GPTć¢ćć«ć®å©ēØ
- ć¬ć¼ććŖććććØćØć©ć¼å¦ē
ćéēŗćć¼ć«ć»ē°å¢ć
- Gitåŗę¬ęä½
- ä»®ę³ē°å¢ē®”ēļ¼venvļ¼
- ä¾åććć±ć¼ćøē®”ēļ¼pipļ¼
- ćććć°ęę³
- ChatGPTļ¼Plus Subscriptionļ¼
- Cursor AI
ćć»ćć„ćŖćć£ć
- API keyć®å®å
ØćŖē®”ē
- OAuthčŖčؼę
å ±ć®ę±ć
- ćć¼ćÆć³ć®ę“ę°ćØē®”ē
- ć¢ćÆć»ć¹ęØ©éć®čØå®
ćć·ć¹ćć éēØć
- ćć°ē£č¦ćØč§£ę
- ćØć©ć¼ćć³ććŖć³ć°
- ććć©ć¼ćć³ć¹ęé©å
- ć¹ćć¬ć¼ćøē®”ē
ć·ć¼ć±ć³ć¹å³ć§č¦ćå¦ēć®ęµć
ćććåŗę¬čØčØćØćć¦AIć«ęøćć¦ććć£ćć

éēŗäøć«ééććčŖ²é”ćØč§£ę±ŗē
Googlećć©ć¤ćAPIć®čŖčؼ
Googlećć©ć¤ćAPIćå©ēØććéć®čŖčؼććć»ć¹ć«ć¤ćć¦ćē¹ć«ćOAuthčŖčؼć§āć¦ć§ćć¢ććŖć±ć¼ć·ć§ć³āćØćć¦é²ććäøć§ććć¼ćÆć³åå¾ć«é¢ććéØåć«å¤§ććć¤ć¾ć„ććććć§åå仄äøęéåććć¾ććć
å®éć«ćÆāćć¹ćÆćććāć«å¤ę“ććććØć§č§£ę±ŗćÆćć¾ććććä»å¾webć¢ććŖć±ć¼ć·ć§ć³ć«ććć«ćÆčŖ²é”ćę®ćć¾ćć
ä»åć®ä½ęē©ććććÆćØć³ćć«ćć¦ćAPIåćććććććÆć¾ćććę°ćåŗćććć
ęęøę½åŗć®é£ćć
DOCXćć”ć¤ć«ćŖć©ćÆé£ęåŗ¦ćććć»ć©ć§ććŖćć§ćććčŖę²»ä¼č³ęć§ćÆćåŗåććć¹ćæć¼ćåēćŖć©ćććć¾ććpdfćććÆpypdf2ćä½æć£ć¦ē°”ęć§ę½åŗćć¾ććććē»åč§£ęåćć«ćGoogle Cloud Vision APIćć«å¤ę“ććć°ććŖćē²¾åŗ¦ćÆäøćććØęćć¾ćć
ććÆćć«ę¤ē“¢ć®å®č£
ććÆćć«ę¤ē“¢ć®å®č£ ć«ććć¦ćå¤ććØć©ć¼ćåŗć¾ććććć»ćØćć©AIć«åēćć¦ććć£ćć®ć§ćć©ć®ćććŖćØć©ć¼ć ć£ććč¦ćć¦ć¾ćććććć¾ććć
ęå¾ ä»„äøć®ę¤ē“¢ē²¾åŗ¦
å®éć«ä½æēØćć¦ćæććØęå¾ ä»„äøć®ę¤ē“¢ē²¾åŗ¦ćå®ē¾ć仄åćGPTsćŖć©ć«č°äŗé²ćŖć©ćč¤ę°ćć”ć¤ć«ē»é²ćć¦č©¦ćć¾ććććććÆćåēē²¾åŗ¦ćÆRAGć®ę¹ććÆććć«é«ćć§ćć
ä»å¾ć®å±ę/čŖ²é”
čŖę²»ä¼ć§ć®AIę“»ēØåÆč½ę§
čŖę²»ä¼ć«ćććAIć®ę“»ēØåÆč½ę§ć«ć¤ćć¦ćčćć¾ćććčŖę²»ä¼å”ć«ćÆå®ćÆćććŖćć®ę±ćć¦ćŖćäŗŗć大åć§ćććć
ććć«åäŗŗę å ±ćéé”ć®å „ć£ćę©åÆę å ±ćććć¾ćććē”éć«ć¢ććŖć±ć¼ć·ć§ć³ćØćć¦ćÆéē¤ŗć§ćć¾ćććę³Øęäŗé ćÆč²ć AIć«ęęććć¾ććććććć£ććć®ćÆćććä¾æå©ć«ćŖć£ććććØčØć£ć¦ććć¾ć ćäŗŗć®ęēµå¤ęćåæ č¦ć§ćć
åƾēćØćć¦ćÆåäŗŗę
å ±äæč·č¦å®ćä»ć®ę±ŗć¾ćććØćčŖćæč¾¼ć¾ćććććć£ććć®ćéč¦č¦ććććć³ććć«ććć°ćåäŗŗåēćŖćć®ćÆåŗć¦ććŖććÆćŖćć¾ććć
ććć³ććꬔē¬¬ć§ćććčØę©ć«åæćchrma.dbćä½ęććŖćććę¹ćčÆćććććć¾ććć
ēµå±ęęøå
ć«åäŗŗåćŖćććØć®ē¢ŗčŖćÆäŗŗććććŖćć¦ćÆćŖćććććęåæµć
ććććē“ äŗŗććć°ć©ćć¼ććć®ć”ćć»ć¼ćø
AIę“»ēØćØććććććļ¼ćļ¼å¹“ćÆć½ćććć³ćÆćÆć¼ć«ćć§ćå«ćććčØć£ć¦ć¾ććććāć¾ćć«AIć“ć¼ć«ćć©ćć·ć„ā ććć§ćę³¢ć«ä¹ćļ¼ćććØćć§ććŖććć°ćä»å¾ćć®ę©ęµćÆåćććććŖćć§ććććććØćććę¾åćććå“ć«ćŖć£ć¦ćć¾ćć¾ććć¾ććä½ćććŖćć¦ććććŖćē¤¾ä¼ććććŖćć儽ććŖććØć«ę²”é ć§ććććććććććŖćććØęć£ć¦ć¾ćć
ć°ć©ć³ćć¼ćŖć¹ć¢ćććŖććå®č³Ŗļ¼ęéććććć§å®ęćććć®ć³ć¼ććpythonć¢ćøć„ć¼ć«ć.py ćć”ć¤ć«xļ¼ć§å
Øä½ć§850č”ēØć®ć³ć¼ććć»ćØćć©ć³ććć§åƾåæćć¦ćäøčŗ«ćÆļ¼å²ććć£ć¦ć¾ććć
ćē„ććŖćććØćē„ć£ć¦ćććć§ćććććććć®ććØćÆć§ćććØćÆęćććę代ć«ćŖć£ć¦ćć¾ććć
ććććå«ććć®čØć£ć¦ćāé¬éč”āćŖćć§ćććććć
ććć¾ć§ććä»ćåćććć ćććććØććććć¾ćććć¹ćā”ćå¤ććććŖćć³ć¼ćéē¤ŗć®čØäŗčæ½å ćć¾ćć
ćć¾ć
ć·ć¼ć±ć³ć¹å³ćć¼ć¹ć§č¦ē©ćć£ć¦ćććć¾ććć
