æ¬èšäºã¯æ¥æ¬ãªã©ã¯ã«ãéå¶ããäžèšMeetupã§çºè¡šäºå®ã®å 容ã«ãªããŸããçºè¡šãŸã§ã«ä»åŸãå 容ã¯äºåãªã倿Žãããå¯èœæ§ãããããšãããããããäºæ¿ãã ããã
ã»ãããŒå®æœæžã®åç»ã¯ãã¡ãã
ããã
1. ã¯ããã«
2. ä»çµã¿
3. æ§æ
4. ã³ãŒãæŠèª¬
5. æç« ã§RDBã«ã¯ãšãªãå®è¡ããŠã¿ã
6. ãã®ä»ã®DMLãDDLã«çžåœããæç« ã詊ããŠã¿ã
7. çªå€ç·š Cohereã®LLMã䜿ã£ãŠã¿ã
8. ãããã«
1. ã¯ããã«
2017幎Google瀟ãTransformerãäžã«éãåºããŠä»¥éãäž»ã«èªç¶èšèªåŠçãå°éãšããŠããäžéšã®ãšã³ãžãã¢çéã ãïŒã§æ°Žé¢äžã§çãäžãã£ãŠããå€§èŠæš¡èšèªã¢ãã«(LLM)ã®æè¡ãšãªã¢ã¯ã2022幎æ®ãã«ãªãªãŒã¹ãããOpenAI瀟ã®ChatGPTã«ãã£ãŠäžæ°ã«è±éããäžçäžã«ç¥ãæž¡ãããšã«ãªããŸããã
ãããŠ2023幎çŸåšãäžçã¯ç©ºåã®AIããŒã ãLLMã®å°æ¥æ§ããããµãŒãã¹ããªãªãŒã¹ãããããã°ãã£ãºã 確å®ãã®ããã«ååžå Žã«ã¯å·šé¡ã®æè³ãããŒãæµå ¥ããå·šå€§äŒæ¥ããã¹ã¿ãŒãã¢ãããŸã§æå ã«ãšå€§éGPUã®è²·ã泚æããããçãGPUçŽåã®é·ãé·ãåŸ ã¡è¡åã«äžŠãã§ãããšããç¶æ³ã
ãããªãæäžã®äžãããããç£å£°ãäžããLLMã®å©çšçšéãçŽ äººãªããã«èå¯ããŠã¿ããšãä»åŸãChatGPTã®ãããªæ°èŠæ§ã®ãããµãŒãã¹ã¯ã©ãã©ãçãŸããŠãããšããæ¹åæ§ãšåæã«ãæ¢åã®è£œåããµãŒãã¹ãLLMã§ãšã³ãã³ã¹ããæ¹åæ§ã倧ãã«å éããã®ã ãããšæšæž¬ããŸãã
ç¹ã«ãæ¢åITãã³ããŒãããããšæè¡çã«ã¯ãã¡ãã®ã»ããå§åçã«ããããããäŸãã°åŒç€Ÿãªã©ã¯ã«ã¯æ©éäžèšãã¬ã¹ã®ããã«ãæ¢ã«ãªãªãŒã¹æžã®äººäºç³»ã¯ã©ãŠããµãŒãã¹ãLLMã«ãã£ãŠãšã³ãã³ã¹ããŠããŸããä»åŸERPãSCMãCXãªã©ã®ãµãŒãã¹ãç¶ã ãšç¶ãããšã§ãããã
ãªã©ã¯ã«ã人äºéšéã®çç£æ§åäžã«åœ¹ç«ã€ãžã§ãã¬ãŒãã£ãAIæ©èœãçºè¡š
ããŸã話ã倧ãããããããšæ¬èšäºã®ã¿ã€ãã«ãšä¹é¢ããŠããŸãã®ã§å°å ¥è©±ã¯ãã®èŸºã«ããŠãããã¯ãPythonãSQLãªã©ã®ã³ã³ãã¥ãŒã¿èšèªãBIãªã©ã®å°éçãªããŒã«ã§ã¯ãªããèšè(LLM)ã§æ§ã ãªã·ã¹ãã ãã¢ããªã±ãŒã·ã§ã³ãæäœã§ããããã«ãªããšãããã°ã©ãã³ã°ãé£è§£ãªçµ±èšã®ç¥èããªããŠãã誰ãããããŒã¿åæãªã©é«åºŠãªåŠçããæœè±¡çãªèšèã§å®è¡ã§ããããã«ãªãäžçãããã®ã§ã¯ïŒãšããé¡ãã蟌ãããã®ããªããã£ããªã¢ã€ãã¢ã®äžã€ãšããŠãæ¬èšäºã§ã¯äžå³ã®ããã«ããŒã¿ããŒã¹ãèªç¶èšèªã§æäœã»åæããåŠçãµã³ãã«ãã玹ä»ããããšæããŸãã
èšå®ãã³ãŒãã«ã¯èå³ãªãã®ã§çµæã ãæããŠããšããæ¹ã¯ ãæç« ã§RDBã«ã¯ãšãªãå®è¡ããŠã¿ãããžã©ããã
2. ä»çµã¿
å§ãã«ãã¿ãã¬ããŠãããšã以éã§è§£èª¬ããã³ãŒãã¯LangChainã䜿ã£ãŠLLMãµãŒãã¹ãRDBã飿ºããããšããä»çµã¿ã§ãæŠãäžèšã®ãããªãããŒã§åŠçãè¡ãããŸãã
â æç« ãLangChainã«å
¥å
â¡å
¥åæç« ãLLMã«é£æºã
â¢LLMã§æç« è§£æãSQLã«å€æåŸ
â£RDBã«æ¥ç¶ããã¯ãšãªå®è¡
â€ã¯ãšãªçµæãç²åŸ
â¥ã¯ãšãªçµæãLLMã§æç« ã«å€æããåºåãã
PythonããLLMãDBãšã®é£æºã¯å®åçãªåŠçã«ãªããŸããããLangChainã§æœè±¡åããŠåŠçãããçµæãå®è³ªã®ã³ãŒãã¯ãããæ°è¡ãé¢åãªãšããã¯å šãŠLLMãšLangChainã«äžžæããšããä»çµã¿ã§ãã
3. æ§æ
åŸã£ãŠãäžèšåŠçãããŒã®äž»ã ã£ãç»å Žäººç©ã¯äžèš3ã€ã
- LLM
- LangChain(ãšPythonç°å¢)
- Database
ãããŠãä»åã¯ãã®3ã€ã®èŠçŽ ã«ãäžèšã®ã¯ã©ãŠããµãŒãã¹ã䜿ã£ãŠã¿ãŸãã
- LLM -> OpenAI瀟ã®GPT
- LangChain(ãšPythonç°å¢) -> Oracle Cloudã®Data Science Service
- Database -> Oracle Cloudã®Autonomous Database Service
å ã»ã©ã®åŠçãããŒã«å瀟ã®ãµãŒãã¹ããããã³ã°ãããšäžå³ã®ããã«ãªããŸãã
以éã¯ããã®3ã€ã®ãµãŒãã¹ãšããããã®æ§ç¯ã®æŠèŠæé ã«ãªããŸãã
èšå®ãã³ãŒãã«ã¯èå³ãªãã®ã§çµæã ãæããŠããšããæ¹ã¯ ãæç« ã§RDBã«ã¯ãšãªãå®è¡ããŠã¿ãããžã©ããã
LLM(å€§èŠæš¡èšèªã¢ãã«)
LLMã¯LangChainãã飿ºãããå ¥åããã¹ããè§£æãSQLã«å€æãããšããéèŠãªã¿ã¹ã¯ãæ åœããŸããä»åãLLMã«ã¯ChatGPTã§ã銎æã¿ãOpenAI瀟ã®LLMã§ããGPTã䜿ã£ãŠã¿ãŸãããŸãã¯ãGPTã®ãµãŒãã¹ãå©çšããããã«ãOpenAIã®ãµã€ãã«ãŠãŒã¶ãŒç»é²ãè¡ããAPIããŒãå ¥æããŸãã
å ·äœçãªæé ã¯äžèšãµã€ããéåžžã«ããããããã§ãã
äœæããAPIããŒäžå³ã®ããã«ãã€ããŒãžã®API Keysã®ã¡ãã¥ãŒã§ç®¡çã§ããŸãã
Usageã¡ãã¥ãŒã§çŸåšã®èª²éç¶æ³ã確èªã§ããŸããããã°ã©ã ãå®è¡ãããã³ã«ããã®èª²éã¡ãŒã¿ãŒãäžãã£ãŠããæ§åãããããŸãã
GPTã¯äžçã§äžçªæåãªLLMã«ãªããŸãããOpenAI瀟以å€ã«ãæ§ã ãªãã³ããŒããLLMãµãŒãã¹ããªãªãŒã¹ãããŠããã粟床ã®è©±ãæãã«ãããšLangChainããµããŒãããŠãããã®ã§ããã°ãªãã§ãåããŸãã
LangChainããµããŒãããLLM
GPTã®ä»ãæåãªLLMãšããŠã¯ãGoogle瀟ã®BERTããããŸãããã¡ãã¯Google瀟ã®ãã£ãããããBardããGoogle翻蚳ã«ãå®è£ ãããŠããããªãŒãã³ãœãŒã¹ã®LLMã§ããBERTã«ã€ããŠã¯æ¬ããŒãã¢ããã§éå»ã«æ±ããŸããã®ã§ãããããã°äžèšããåç §ãã ããã
èªç¶èšèªã𿩿¢°åŠç¿(BERTã«ã€ããŠè§£èª¬)
çããã¯Cohere(ã³ãã¢)瀟ã®LLMããåãã§ãããããæšå¹Žæ®ãããä»å¹Žã«ãããŠã倿°ã®äŒæ¥ããå·šé¡ã®è³é調éã«æåããã¹ã¿ãŒãã¢ããã§ããLangChainã¯CohereããµããŒãããŠãããããªã®ã§ä»åã¯çªå€ç·šã§Cohereã®LLMãæ±ã£ãŠã¿ãããšæããŸãã
LangChain(ãšPythonç°å¢)
çŸåšãLLMåšèŸºã«ã¯æ§ã ãªãã¬ãŒã ã¯ãŒã¯ã®ã©ã€ãã©ãªãååšããŸããæåãªãšããã ãšä»¥äžã®ãããªãã®ã§ãã
- LangChain
- LlamaIndex
- Sementic Kernel
ã©ã®ããŒã«ãLLMãšããã®ä»ã®ãµãŒãã¹ãšã®é£æºãäž»ãªç®çãšãããã¬ãŒã ã¯ãŒã¯ã«ãªã£ãŠãããLLMããã®é£æºå ã®ãµãŒãã¹ã«å¿ããŠãæ§ã ãªåŠçãæœè±¡åºŠã®é«ã颿°ã§ã·ã³ãã«ã«ã³ãŒãã£ã³ã°ã§ããéåžžã«å€æ©èœãªã©ã€ãã©ãªãšãªã£ãŠããŸãããããã®ãã¬ãŒã ã¯ãŒã¯ã®äžçªã®èèã§ããLangChainã®äž»ã ã£ã飿ºãµãŒãã¹ãèŠãŠã¿ããšä»¥äžã®ãããªãã®ã«ãªããŸãã
飿ºæ§é ãšããŠã¯éåžžã«ã·ã³ãã«ã§ãLLMãšã飿ºãµãŒãã¹ãšã®éã«LangChainãäœçœ®ãã飿ºã®åžä»€å¡ãšãªããŸããLangChainã¯LLMãã飿ºãµãŒãã¹ãšã®æ¥ç¶ãä¿æããŠãããåŠçãããå 容ã«å¿ããŠãããã³ãããLLMã«é£æºããããLLMããåŸãããæ å ±ãããã®ä»ã®ãµãŒãã¹ã«é£æºããã(ãã®éãè¡ããŸãã)ãšãããŒã¿ãããŒãšããŠã¯LLMãšé£æºãµãŒãã¹ã®éãè¡ã£ããæ¥ããããããšã«ãªããŸãããã®ãããªåŠçãåãµãŒãã¹ã®APIã䜿ã£ãŠãŒãããŒã¹ã§éçºãããšçžåœãªã³ãŒãéã«ãªããŸãããLangChainã¯ãããæœè±¡åããæ°è¡ã®ã³ãŒãã§å®çŸã§ãããããªã©ã€ãã©ãªã«ãªã£ãŠããŸãã
LangChainã«ã¯è€æ°ã®ã¢ãžã¥ãŒã«ããããä»åã¯RDBæäœã®ããã®SQLDatabaseChainã䜿ããŸãããŸããPythonç°å¢ãšããŠä»åã¯Oracle Cloudã®Data Science Serviceã䜿ã£ãŠã¿ãŸããJupyterããŒãããã¯ããŒã¹ã®æ©æ¢°åŠç¿ç°å¢ãç°¡åã«ããããžã§ãã³ã°ã§ããŠPaaSãšããŠã¯ç¡åãšãããµãŒãã¹ã§ãããšèšã£ãŠãããã®ããšã玹ä»ãããµã³ãã«ã³ãŒãã¯éåžžã®Pythonç°å¢ã§ããã°ã©ãã§ãåããŸããOracleã®Data Science Serviceã«ãèå³ãããæ¹ã¯æ¯éäžèšããåç §ãã ããã
Data Science Serviceã䜿ã£ãŠã¿ããããªãšæãããæ¹ã¯ããµãŒãã¹æŠèŠãã玹ä»ããããã°ããã³åæã»ããã¢ãããäžèšãããåç §ãã ãããããªãŒãã©ã€ã«ããããŸãã®ã§æ¯éïŒ
ããŒã¿ããŒã¹
LangChainã䜿ã£ãŠèªç¶èšèªã§RDBãåç §ãããšããèšäºã¯äœçªç ãã«ãªãã®ãããããªãã»ãšæ¢ã«æ²¢å±±ãããŸããã倧æµã®èšäºã§ã¯ç°¡æçã«SQLiteã䜿ã£ãŠããã±ãŒã¹ãå€ããããªã®ã§ãæ¬èšäºã§ã¯Oracle Cloudã®Autonomos Databaseã䜿ã£ãŠå°ãã§ããªãªãžããªãã£ãåºã ããã°ãšæããŸãã
LangChainã¯DBæ¥ç¶ãã¯ãšãªåŠçãå®è¡ããŠãããŸãããå éšã§ã¯ã銎æã¿ã®ORMã©ã€ãã©ãªSQLAlchemyã䜿ãããŸããåŸã£ãŠãSQLAlchemyããµããŒãããŠããDBã§ããã°ãªãã§ãåäœããŸãã
ãµã¯ããšè©Šãããæ¹ã¯ãSQLiteãMySQLãPostgreSQLãªã©LangChainããµããŒãããŠããDBãããŒã«ã«ã«ã€ã³ã¹ããŒã«ããããã³ã³ããã§ãããšæããŸãã
ãŸãã¯äžèšæé ã«åŸã£ãŠAutonomous Databaseã®ã€ã³ã¹ã¿ã³ã¹ãäœããŸãã
ããŒã¿ããŒã¹ã€ã³ã¹ã¿ã³ã¹ã®äœæãå®äºããããæ¬¡ã¯ã¹ããŒãäœæã§ããã¹ããŒãã¯æ¬åœã«äœã§ãæ§ããªãã®ã§ãããäžèšã®ãããªç°¡åãªãã®ãäœæããŠå°ãã ãããŒã¿ãå ¥ããŠããããšæããŸããOracle DBã®ãµã³ãã«ã¹ããŒããªã©ãã€ã³ã¹ããŒã«ããŠããã ããŠãããŸããŸããã
äžèšã®è¡šãšã¬ã³ãŒãã®äœæSQLã¯ãã¡ããPythonããå®è¡ããŠããã ããŠãããŸããŸããããAutonomous Databaseã¯ä»å±ã®ã³ã³ãœãŒã«ããSQLãå®è¡ã§ããŸãã®ã§æ¯é䜿ã£ãŠã¿ãŠãã ããã
drop table products;
create table products(
id INTEGER,
name VARCHAR2(255) NOT NULL,
price INTEGER NOT NULL,
primary key(id)
);
insert into products values(1,'ååA',100);
insert into products values(2,'ååB',200);
insert into products values(3,'ååC',300);
select * from products;
drop table sales;
create table sales(
id INTEGER,
product_id INTEGER NOT NULL,
units INTEGER NOT NULL,
primary key(id),
foreign key(product_id) references products(id)
);
insert into sales values(1,1,1500);
insert into sales values(2,2,1000);
insert into sales values(3,3,500);
select * from sales;
drop table stocks;
create table stocks(
id INTEGER,
product_id INTEGER NOT NULL,
units INTEGER NOT NULL,
primary key(id),
foreign key(product_id) references products(id)
);
insert into stocks values(1,1,100);
insert into stocks values(2,2,500);
insert into stocks values(3,3,1000);
select * from stocks;
次ã«ãLangChain(Pythonç°å¢ã§ããData Science Service)ããDBæ¥ç¶ïŒAutonomous Database Serviceãžã®æ¥ç¶)ã®ããã«å¿ èŠãªèšå®ãè¡ããŸããAutonomous Databaseã¯Oracle Walletã§æ¥ç¶èªèšŒããŸãã®ã§ãWalletãã¡ã€ã«ãã³ã³ãœãŒã«ããããŠã³ããŒããã»ããããå¿ èŠããããŸããäžå³ã®éããã³ã³ãœãŒã«ã®ãããŒã¿ããŒã¹æ¥ç¶ããããããŒã¿ããŒã¹æ¥ç¶ãã®ç»é¢ã«ç§»åããŸãã
ãã®ç»é¢ã®ãããŠã©ã¬ããã®ããŠã³ããŒãããã¿ã³ãããŸãã¯ãŠã©ã¬ãããã¡ã€ã«ãããŒã«ã«ã«ããŠã³ããŒããã€ã€ããã®ç»é¢ã§ããŒã¿ããŒã¹ã®æ¥ç¶æååã確èªããŠãããŸããäžå³ã§ã¯ãadw01_highããªã©ã«ãªã£ãŠããããšãããããŸãã
ããŒã«ã«ã«ããŠã³ããŒãããWalletãã¡ã€ã«(zipãã¡ã€ã«)ããäžå³ã®ããã«Data Science Serviceã®ä»»æã®ãã£ã¬ã¯ããªã«ã¢ããããŒããè§£åããŸãã
ããã€ãã®ãã¡ã€ã«ãããããšãããããŸãããsqlnet.oraãã¡ã€ã«ãããã«ã¯ãªãã¯ããŠéããäžå³ã®ããã«ãã®ãã¡ã€ã«ãé 眮ãããã£ã¬ã¯ããªæžãæãä¿åããŸãã
ãã®äŸã§ã¯ãã£ã¬ã¯ã㪠/home/datascience/Langchain/network/adminãã«ãã¡ã€ã«ãé 眮ããŠããŸããä»»æã®ãã£ã¬ã¯ããªã§å€§äžå€«ã§ãã
以äžã§èšå®çµäºã§ãã
ãã®æç¹ã§ã以äž5ã€ã®é ç®ãäœæãããŠãããããããåŸã®ã³ãŒãå®è¡æã«äœ¿çšããŸãã
LangChainããããŒã¿ããŒã¹ãžã®æ¥ç¶æã«äœ¿çšããé ç®
- ããŒã¿ããŒã¹ã®æ¥ç¶åïŒæ¬èšäºã§ã¯ãadw01_highã
- ããŒã¿ããŒã¹ãŠãŒã¶ãŒåïŒããã©ã«ãã®adminã§ãããã§ããæ°ãã«äœæãããŠãŒã¶ãŒã§ã倧äžå€«ã§ãã
- ããŒã¿ããŒã¹ã®ãã¹ã¯ãŒãïŒã€ã³ã¹ã¿ã³ã¹äœææã«ã»ãããããã¹ã¯ãŒã
- TNSé¢é£ãã¡ã€ã«ã®ãã£ã¬ã¯ããªïŒæ¬èšäºã§ã¯ã/home/datascience/Langchain/network/adminã
LangChainããLLM(GPT)ãžã®æ¥ç¶æã«äœ¿çšããé ç®
- OpenAIã®APIããŒïŒOpenAIã®ãµã€ãã§çæ
4. ã³ãŒãæŠèª¬
ããããå®è¡ã³ãŒãã®æŠèª¬ã«ãªããŸãããŸãã¯å¿ èŠãªã©ã€ãã©ãªãã€ã³ã¹ããŒã«ããŸããopenaiã¯GPTãå©çšããéã®APIã«ãªããLLMã¯ã©ã€ã¢ã³ããšããŠåäœããŸãããã®ä»ãå¿ é ã®langchainãã€ã³ã¹ããŒã«ããŸãã
!pip install openai
!pip install langchain
å¿ èŠãªã©ã€ãã©ãªãimportããŸãã
import os
from langchain import OpenAI, SQLDatabase, SQLDatabaseChain
TNSé¢é£ãã¡ã€ã«ãé 眮ãããã£ã¬ã¯ããªãç°å¢å€æ°TNS_ADMINSãšããŠã»ããããŸããPythonããå®è¡ããå Žåã¯äžèšã®ããã«èšå®ããŸãããããŠãããŒã¿ããŒã¹ã€ã³ã¹ã¿ã³ã¹ãäœæããéã«èšå®ãããã¹ã¯ãŒããšãOpenAIã®APIããŒãä»»æã®ååã®ç°å¢å€æ°ãšããŠã»ããããŸãã(å®ã·ã¹ãã ã§ã¯ãã¹ã¯ãŒããªã©ã®å¹³æãã³ãŒãã«åã蟌ãããšã¯ãã¡ãããããŸãããã)
%env TNS_ADMIN=/home/datascience/Langchain/network/admin
%env DB_PASSWD="xxxxxxx"
%env OPENAI_API_KEY=xxxxxxxxxxxxxxxxxxx
次ã«ãå®éã«DBãžã®æ¥ç¶ãªããžã§ã¯ããäœæããŸããæ¥ç¶ããããŒã¿ããŒã¹ã®TNSå(ã³ã³ãœãŒã«ããäºåã«ç¢ºèªæžã®åå)ãDBãŠãŒã¶ãŒåãç°å¢å€æ°ããããŒã¿ããŒã¹ãŠãŒã¶ãŒã®ãã¹ã¯ãŒããå®çŸ©ããäžèšã®ããã«DBãžã®æ¥ç¶èšå®ãè¡ããŸãã
dsn = "adw01_high"
username = "xxxxx"
password = os.environ.get("DB_PASSWD")
db = SQLDatabase.from_uri(f'oracle://{username}:{password}@{dsn}/?encoding=UTF-8&nencoding=UTF-8')
ããã§Data Science Serviceã«å®è£ ããLangChainããAutonomous Databaseãžã®æ¥ç¶ãã§ããããã«ãªããŸããã
次ã«ãLangChainããOpenAIã®GPTã«æ¥ç¶ã§ããããäžèšã®ããã«ã³ãŒãã远å ããŸã
api_key = os.environ.get("OPENAI_API_KEY")
llm = OpenAI(openai_api_key=api_key,temperature=0)
db_chain = SQLDatabaseChain.from_llm(llm, db, verbose=True)
ããã§ãLangChainããAutonomous DatabaseãšLLMäž¡æ¹ã«æ¥ç¶ã§ããããã«ãªããŸãããããŒã¿ããŒã¹ã«ã¯ããããŒã¿ãå ¥ã£ãŠããŸããããããæç« ã§DBã«ã¯ãšãªãå®è¡ã§ããç¶æ ã§ãã
5. æç« ã§RDBã«ã¯ãšãªãå®è¡ããŠã¿ã
äŸãã°ãäžèšã®ãããªããã³ãããå®è¡ããŠã¿ãŸãã
db_chain.run("å䟡ã150å以äžã®ååã¯äœåãããŸããïŒ")
çµæã¯ä»¥äžã®éããå ¥åæç« ããSQLãçæãããRDBãžã¯ãšãªããçµæããŸãæç« ã§åºåããŠããç¶æ³ãããããŸããçæãããSQLããæçµçãªåºåæç« ãæ£ç¢ºã§ããã
ããå°ãè€éãªæç« ã詊ããŠã¿ãŸãã
ããŒããåºåæç« ãããå¯ãããã©ã¡ãããšLLMã®åŠçãå®è¡ãããŠããããšã¯ããããŸãã
ãããããåçŽãªæç« ã ãšé£ãªãããªããŠãããŸãããã¡ãããšè¡šçµåãã§ããŠããããéèšé¢æ°ãããã·ãŒãžã£ãªã©ãŸã§äœ¿ããããã§ããã°ãã·ã³ãã«ãªã¹ã¿ãŒã¹ããŒãã§ããã°DWHã®åæãã§ãããã§ãã
6. ãã®ä»ã®DMLãDDLã«çžåœããæç« ã詊ããŠã¿ã
Selectã ãã ãšã€ãŸããªãã®ã§ãã®ä»ã®DMLãDDLã«çžåœããæç« ã詊ããŠã¿ãŸãã
Insert
Delete
Update
Create
Drop
å®ç§ãããããªãSQLãä»ãŸã§ããããšãã
ãšèšããããšããã§ãããäžèšã¯æåäŸã°ãããæ²èŒããŠãããè€éãªæç« ãå ¥åãããšãã©ãããŠãæå³ããªãSQLãçæãããšã©ãŒã«ãªãããšãå€ã ãããŸããçµæ§æ°ãã€ããŠãå ¥åæç« ãäœããªããšé端ã«ãšã©ãŒãäžèšå ¥åæç« ãå€å°ãã©ãã©ããã®ã¯ãããçç±ã§ãã
衚åãååãªã©ããŒã¿ããŒã¹å ã®äž»èŠãªãªããžã§ã¯ãã®ååã¯ãã©ã®ãããªæç« ãå ¥åãããã®ããæšæž¬ããŠäœã£ãŠãããªããšãã¹ããããèµ·ããããããŸãããæ¥æ¬èªã®ãã³ããªã³ã°ã§ãšã©ãŒã«ãªãããšãå€ã ãããŸãããŸãããŒã¿ããŒã¹ãSQLiteãMySQLãªã©ä»ã®ãã®ã«å€ãããšç°ãªãæåã«ãªã£ãããããŸãã(SQLiteã¯æ¯èŒçå®å®ããŠããæããããŸãã)
ä»åŸãããããSQL倿ã®ã·ãã¢ãªéšåããã£ãšé©åœã«å ¥åããŠãããŸãããªããŠãããããæ¹è¯ã«æåŸ ããããšããã§ãã(LangChainã«ã¯æ§ã ãªã¢ãžã¥ãŒã«ãããã®ã§ãããã䜿ã£ãŠæ¹åã¯ã§ãããã§ãã)
ãŸã ãŸã ã粟床ã¯åŸ®åŠã§ãããèšèã§ããŒã¿ããŒã¹ã®æäœãããŒã¿åæãæŽã«ã¯ãæ©æ¢°åŠç¿ãªã©ãå®è¡ã§ããæä»£ã¯ããé ããªãã ãããªãšããå°è±¡ã§éåžžã«å°æ¥æ§ãæããŸãã
7. çªå€ç·šãCohereã®LLMã䜿ã£ãŠã¿ã
åé ã§ãäŒãããéããLLMãGPTããCohereã«å€æŽããŠè©ŠããŠã¿ãããšæããŸããã€ãŸããæ§æå³ã§ãããšäžå³ã®ããã«GPTãCohereã«çœ®ãæããŸãã
Cohereã®LLMã®äœ¿ãæ¹ã¯ãGPTãšããŸãå€ãããŸãããCohereã®ãµã€ãã§ãŠãŒã¶ãŒç»é²ãè¡ããäžå³ã®ããã«APIããŒãäœæãã管çããŸãã
GPTãšåãããã«Usageã®ç»é¢ããããŸãã
å®è¡ã³ãŒãã¯ãGPTã®éšåãCohereã«æ¿ãæ¿ããŠããã ãã§ããã以å€ã¯å šãŠåãã§ãã(â ã®è¡)
â
!pip install cohere
!pip install langchain
import os
â
from langchain import Cohere, SQLDatabase, SQLDatabaseChain
%env TNS_ADMIN=/home/datascience/Langchain/network/admin
%env DB_PASSWD="xxxxxxxxxxxxxxxxxx"
â
%env COHERE_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxx
password = os.environ.get("DB_PASSWD")
username = "xxxxxxx"
dsn = "adw01_high"
db = SQLDatabase.from_uri(f'oracle://{username}:{password}@{dsn}/?encoding=UTF-8&nencoding=UTF-8')
â
api_key = os.environ.get('COHERE_API_KEY')
â
llm = Cohere(cohere_api_key=api_key,temperature=0)
db_chain = SQLDatabaseChain.from_llm(llm, db, verbose=True)
db_chain.run("å䟡ã150å以äžã®ååã¯äœåãããŸããïŒ")
å®è¡ãããšäžå³ã®ãããªæãã§ãã
åºåæç« ãã¡ãã£ãšã¶ã£ãããŒããªæããåŠããªããããã¯ãšãªã®çµæããã®ãŸãŸåºåãããŠããŠãæçµçãªåºåæç« ã®çæåŠçãå®è¡ãããŠããªãããã«èŠããŸããããã¯CohereãšããããLangChainåŽã®ã€ã³ãã°ã¬ãŒã·ã§ã³ã®åé¡ãªãããªæ°ãããã
ããã«è¡šçµåã詊ããŠã¿ããšããããšã©ãŒããã
ããŒãããåšåº«ããšããåèªããstockãã§ã¯ãªããin_stockããšããååšããªãååã«å€æãããŠãããããstocks衚ã䜿ã£ãŠãããã衚çµåããŠãããŠããªãããã
å ¥åæç« ã®ãåšåº«ãããStockãã«å€ããŠã¿ããšããã
stocks衚ã¯äœ¿ããã衚çµåãããããã
ãã®ãããããã³ãããå€§å¹ ã«æžããããŠããã
ãã£ãšæåã
ã¶ã£ãããŒããªãšããã¯å€ãããããã
ä»åŸã¯æŽã«ãšã³ãã³ã¹ãããŠããããšã§ãããã
8. ãããã«
èšèã§æ§ã ãªã¢ããªã±ãŒã·ã§ã³ãæäœãããããŒã¿ãåæãããã§ããããã«ãªããšããã€ã³ã¿ãŒãã§ãŒã¹ã®åšãæ¹ã¯ãLLMã®æ¬è³ªã®äžã€ãšãããããªæ°ãããŸãã
PythonãJavaãªã©æ§ã ãªã³ã³ãã¥ãŒã¿èšèªããããŠJupyterãªã©ã®ããŒãããã¯ã®ä»çµã¿ã䟿å©ãªã©ã€ãã©ãªã¯ãããŸã§ã®éçºç°å¢ãéçºå¹çã倧ããå€é©ããããšã¯èšããŸã§ããããŸãããããããã§ããããã¯äžéšã®äººã«ããæ±ããªããè·äººæãã§ããããšã¯æããä»åŸãå€ãããªãã§ãããã
ãããªäžéšã®è·äººãã䜿ããªãããŒã«ã ãã§ã¯ãªãããèšèããšãã誰ãããæ¯æ¥åœããåã®ããã«äœ¿ã£ãŠããããŒã«ã§ãå°éçãªåŠçãå®è¡ã§ãããããªãµãŒãã¹ãéçºãããŠããããšã¯å€ãã®äººãæãè³æ¥µèªç¶ãªæµãã®ããã«æããŸãã
ä»åã¯ããŒã¿ããŒã¹ã®åŠçã«ãã©ãŒã«ã¹ããŠèšäºãäœããŸããããäžã®äžã®ããããã·ã¹ãã ãã¢ããªã±ãŒã·ã§ã³ãæäœããããã®ã³ãã³ããããã°ã©ã ãªã©ããé«ç²ŸåºŠã§èšèã«çœ®ãæããããšãã§ããã°ãAIã«è©±ããããªããä»äºãé²ãããããªãæèŠãæ ç»ã®ã¯ã³ã·ãŒã³ã¯è¿ãå°æ¥ããªãã£ã¹ã§ã®æ¥åžžã®å æ¯ã«ãªããããããŸãããã


























