LangChain በጅምላ ቋንቋ ሞዴሎች (LLMs) በመጠቀም ጠንካራ መተግበሪያዎችን ለመፍጠር ፈጣን ንድፍ ሊሆን ይችላል. የ LLMs የአምላክ ቋንቋን ያውቃል ጊዜ, በ SQL databases ውስጥ የተመሠረተ ውሂብ መጠን ለመግዛት በአብዛኛው ጊዜ ልዩ ጥያቄ ጥራት ያስፈልጋል. ይህ አንድ አስፈላጊ ጥያቄ ይሰጣል: እንዴት ተጨማሪ ተጠቃሚዎችን ቀላል, ምናልባት ቋንቋ በመጠቀም በ MySQL ያሉ ውሂብ ቦርሳዎች ጋር መዳረሻ ይችላሉ?
ይህ ጽሑፍ በ LangChain በመጠቀም የእኔ የፈጠራ ጉዞን ያካትታል - አንድ የ MySQL ውሂብ ውሂብ ለመምረጥ ችሎታ የሚችል የፈጠራ ቋንቋ መተግበሪያ. እኔ በ Docker በመጠቀም ስርዓት ለመፍጠር የተወሰነ ደረጃዎች, በተመሳሳይ ፍላጎቶች (የ LLM ቶኬን መስፈርቶች መቆጣጠሪያ, ተስማሚ ውሂብ ደህንነት ለማረጋገጥ, እና በተደጋጋጋሚ ትዕዛዞች መቆጣጠሪያ) እና የ multi-step, multi-LLM መፍትሔዎችን ይሰጣል.
የ Python ኮድ በመተግበሪያ ላይ በዚያ ላይ የተወሰነ ምናልባት የተወሰነ ምናልባት መሣሪያዎችን በመተግበሪያው ሙሉ በሙሉ በ AI ሞዴሎች, በዋናነት ChatGPT እና Gemini በመጠቀም የተሰራ ነበር. የእኔ ሥራዎች መስፈርቶች ለመፍጠር, ትዕዛዞችዎችን ለመፍጠር, የፈጠራ ኮድን ተግባራዊነት እና ምናልባት ችግሮች ለማግኘት ይመልከቱ እና ይሞክሩ, የ AI በከፍተኛ ደረጃዎችን ለማስተካከል, የተለያዩ ክፍሎች ለመተግበሪያ, እና አስፈላጊ የሙከራ እና ከባድ ክፍሎች ለማስተካከል ያካትታል.
Step 1: Establishing the Foundation with Docker
- አግኙን
- ንድፍ: ንድፍ: ንድፍ: ንድፍ: ንድፍ: ንድፍ: ንድፍ: ንድፍ: ንድፍ: ንድፍ: ንድፍ: ንድፍ: አግኙን
- የ Method: የእኔ የመጀመሪያው ትክክለኛ ደረጃ በ Docker በመጠቀም አንድ አስተማማማኝ እና ተስማሚ የአካባቢ ለመፍጠር ነበር. የአካቲክቲክቱ በሦስት ልዩ መሣሪያዎች ያካትታሉ: አንድ Frontend መተግበሪያ (React/Node.js), አንድ Backend አገልግሎት (Python with LangChain) እና ሌላው MySQL database instance የተመሠረተ ነው. ይህ containerized መተግበሪያ የሚፈልጉትን Python libraries በአካባቢው መጫን ከባድ እና የፕላስቲክ ተስማሚነት ምክንያት አስቸጋሪ ፍላጎቶች ተሞክሮ በኋላ አስፈላጊ ነበር. አግኙን
- መተግበሪያ ዝርዝር: በ Docker በመጠቀም የተሻለ ስሌት ይሰጣል. የ AI ድጋፍ በመጠቀም በ Dockerfiles እና docker-compose.yml ለመፍጠር የሚፈልጉትን የሦስት አገልግሎቶች እና የእነርሱ ትራንስፖርትዎችን (በ Python, LangChain, Node.js, MySQL connector እንደ) ያካትታል. አስቸጋሪ መተግበሪያዎች የ Docker አውታረ መረብዎችን ለመፍጠር የሚፈልጉትን በኮንቲነር የመስመር ላይ ግንኙነት (እን.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ.ኤ አግኙን
- የፕሮጀክሽን እና የመቋቋም: አንድ ጊዜ መተግበሪያዎች ተስማሚ ሊሆን ይችላል, አስፈላጊ ኢንዱስትሪ ለመስጠት. በዚህ መዋቅር የተመሰረተ ጋር, የሚከተሉት ደረጃዎች በ Backend Python አገልግሎት ውስጥ ተመሳሳይ መዋቅር ንድፍ እና ፍላጎቶች ላይ ተስማሚ ይሆናል, እንደ ይህ የንግድ LangChain ትክክለኛነት, LLM ትክክክለኛነት, እና ውሂብ ሂደት ቧንቧ መተግበሪያዎች መተግበሪያ ነበር. አግኙን
Step 2: First Queries and the Schema Size Challenge
- አግኙን
- የመጀመሪያው ስኬታማነት: የ containerized መተግበሪያ ተስማሚ ነበር, እና የግል ቋንቋ ጥያቄዎች በ database ላይ ተስማሚ ነበር. Simple requests yielded correct query logic and data via LangChain and the primary LLM. አግኙን
- የቶኪን መስፈርቶች: ነገር ግን, አንድ ዋና የፋስቡክ ፈጣን ታዋቂ ነበር: የቶኪን መስፈርቶች ከከፍተኛ የ API ስህተት. ይህ በ LLM የተመሠረተ ስህተት ዝርዝሮች (ገጽ / ኮሎን ስምዎች, ዓይነት), እና በቶኪን መስፈርቶች ለ LLM መስፈርቶች በጣም ትልቅ ነበር, ይህ ስህተት መረጃ በቶኪን መስፈርቶች ጋር በቶኪን መስፈርቶች. አግኙን
- The Workaround: Subsetting: የእኔ ቀጣይ መፍትሔ በ LLM የተመሠረተ ቅርጸት መረጃን ያካትታል, እያንዳንዱም የ Database Tables አንድ አነስተኛ, ብጁ የተመሠረተ ቅርጸት ብቻ በመጠቀም ወይም በ LangChain ቁጥጥር ቁጥጥር ቅርጸት አጠቃቀም እንደ top_k=1 እንደ ፓርሜራዎችን በመጠቀም. አግኙን
- የ LLM በዚህ የተወሰነ ቪዛ ውስጥ ከሌሎች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ከታች ነው. አግኙን
Step 3: Implementing PII/PHI Filtering via a Dedicated LLM Prompt
- አግኙን
- ለኮምፒዩተር ኩባንያዎች, በተለይ በጤና እና የባንክ ኢንዱስትሪ እንደ የተመሠረተ ኢንዱስትሪዎች ውስጥ, ተስማሚ PII / PHI ማጣሪያዎች በአብዛኛው ጊዜ ጠንካራ ህክምና መስፈርቶች (እንዴት, HIPAA ወይም የገንዘብ መስፈርቶች) ያስፈልጋቸዋል. ጥቁር ውሂብ ማመልከቻ በተጨማሪም ደንበኞች ፍላጎት ይሸፍናል, ታዋቂነት ይሸፍናል, እና ውስጣዊ ደህንነት እና ሕክምናን ይሸፍናል. ውጤቶችን ማመልከቻ በፊት ጠንካራ ማጣሪያዎች እንደዚህ ትክክለኛነት መስፈርቶች ለማሟላት አስፈላጊ ነበር, በተለይ በስፋት ቡድን መግዛት. አግኙን
- The Solution: A “Data Security Bot”: የእኔ መተግበሪያው የተመሠረተ Data Sanitization Layer ያካትታል... (የ LLM ማጣሪያ መተግበሪያን ያካትታሉ አጠቃቀም ተመሳሳይ ነው) አግኙን
- በይነገጽ ውስጥ, አንድ ዝርዝር ትዕዛዞች (get_sanitize_prompt) ይህ ሁለተኛ LLM እንደ "የተግበሪያ ደህንነት ማጣሪያ" ይሰራል. አግኙን
- አግኙን
- Example: A result like
{'member_id': 12345, 'member_name': 'Jane Doe', 'address': '123 Main Street, Mercy City'}
would be transformed by the filter LLM to{'member_id': 12345, 'member_name': '[REDACTED]', 'address': '[REDACTED]'}
. አግኙን
እዚህ ከሁለቱም ልማት በኋላ ሙሉ ቅርጽ ነው
Step 4: Refining Prompts for Raw SQL Generation
- አግኙን
- የ Challenges: Misinterpretation: የ PII ማጣሪያ መተግበሪያ በኋላ, እኔ ዋናው NL-to-SQL LLM (MainLLM) በይነገጽ ላይ በይነገጽ ላይ በይነገጽ ወይም በይነገጽ ጥያቄዎች መተግበሪያ በፊት ተጠቃሚው ፍላጎት ትክክለኛነት ያውቃል ለመረጋግጣል. በይነገጽ ትዕዛዞች MainLLM በይነገጽ SQL መተግበሪያ, በይነገጽ ውሂብ ማውረድ ወይም በይነገጽ ውሂብ ማውረድ ይችላሉ. አግኙን
- The Solution: A “Prompt Refinement Bot”: መተግበሪያው አስተማማኝነት ለማሻሻል, እኔ የ “Prompt Refinement Bot” — አንድ የ 3 ኛ LLM call.This bot acted as an “expert prompt engineer,” taking the original user query and database scheme to rewrite the request into a highly explicit and unambiguous instruction for the MainLLM. አግኙን
- መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ አግኙን
- ውጤት: ይህ pre-processing ደረጃ በ MainLLM የተቀየደው ውሂብ መካከል ትክክክለኛነት እና ትክክለኛነት በከፍተኛ ደረጃ የተሻሻል. አግኙን
Step 5: Enhancing Context with Conversation Memory
- አግኙን
- አጠቃቀም ፍላጎት: የተወሰነ ጥያቄዎች በላይ ተጠቃሚ ልምድ ለማሻሻል እና በጣም ቀላል መዳረሻ ለማስተካከል, በመተግበሪያ ጥያቄዎችን ለማስተካከል የኮንክቶፕ መውሰድ አስፈላጊ ነበር. አግኙን
- ይህ መተግበሪያ የ LLM (gpt-3.5-turbo በዚህ ሁኔታ ውስጥ) ይጠቀማል, በ max_token_limit=500 ጋር የተመሠረተ ነው. አግኙን
- ይህ የተወሰነ {history} ከዚያም በ MainLLM (የ NL-to-SQL + Executor) ጋር መተግበሪያ ላይ ጥቅም ላይ የሚጠቀሙ የ prompt template ላይ በቀጥታ የተመሠረተ ነበር, በአጠቃሚው የአሁኑ {query} ጋር. አግኙን
- አጠቃቀም: ይህ የሙዚቃ ጥቅል ያካትታል, ስርዓቱ በሽያጭ መዳረሻን ይመልከቱ, በሽያጭ ውሂብ ውሂብ ቁሳቁሶች ላይ ይበልጥ ተስማሚ እና የኮንክቶፕ-አውታረ መዳረሻዎች ለማግኘት ይበልጥ ይጠቀማል. አግኙን
Conclusion: Lessons from Building a Multi-LLM SQL Interface
በ LangChain በመጠቀም MySQL ወደ ይህ ምናልባት ቋንቋ መተግበሪያ ለመፍጠር የቴክኖሎጂ እና የቴክኖሎጂ ልማት ጥንካሬ እና ጥንካሬ ሁኔታዎች ውስጥ አስደሳች ጉብኝት ነበር. አንድ የቴክኖሎጂ መተግበሪያ በመጠቀም የቴክኖሎጂ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ ነው.
የ LLM ቶኬን መስፈርቶች በከፍተኛ ቅርጸቶች ጋር ለመቆጣጠር, ውሂብ ደህንነት ለማረጋገጥ እና ፈጣን ልምድ ለማሻሻል እንደ አስፈላጊ መፍትሔዎች ያስፈልጋቸዋል. የኮድ ማምረት ለ AI መተግበሪያዎች በመተግበሪያ ክፍሎች በከፍተኛ ፍጥነት ይጠቀማቸዋል, በአጠቃላይ መዋቅር ንድፍ, የ PII ማጣሪያ ውሂብ እንደ ልዩ ትክክክለኛነት መተግበሪያዎች እንደ መተግበሪያዎች መተግበሪያዎች መተግበሪያዎች, ክፍሎች መተግበሪያዎች እና ትክክለኛ የሙከራዎች በጣም አስፈላጊነት ይሆናል.
Next Steps: Exploring Retrieval-Augmented Generation (RAG)
የኬሚካል ውጤታማነት, በተለይም ለስላሳ ወይም በተደጋጋሚ ጥያቄዎች, በአሁኑ ፈጣን መሐንዲሶች እና ማጣሪያ ቴክኖሎጂዎች በላይ የተሻሻለው ፍላጎት አላቸው.
አንድ አስቸጋሪ መንገድ እኔ ተጨማሪ ትክክለኛነት ለማሻሻል የሚፈልጉት ነው.Retrieval-Augmented Generation (RAG)የ RAG ስርዓት በ LLM ውስጥ ውስጣዊ ጥናት ወይም የፕላስቲክ ቅርጸት ለማግኘት ብቻ መተግበሪያዎን ይጠቀማል. የ RAG ስርዓት የ SQL ን ለመፍጠር በፊት የ RAG ስርዓት በይነገጽ መረጃዎችን ለማግኘት ልዩ የታወቀ መለያዎችን ይጠቀማል.
በዚህ NL-to-SQL መስኮት ውስጥ, ይህ መውሰድ ሊሆን ይችላል:
- አግኙን
- ዝርዝር ዝርዝሮች ወይም ዝርዝሮች ለኮምፒውተር ትዕዛዞች እና የኮምፒውተር ትዕዛዞች እና የኮምፒውተር ትዕዛዞች በጣም አስፈላጊ ነው. አግኙን
- የቀድሞው ተመሳሳይ ምርት ቋንቋ ጥያቄዎች ለምሳሌዎች በ SQL ትክክለኛ ተመሳሳይ ጥያቄዎች ላይ ተካተዋል. አግኙን
- የተወሰነ የንግድ ግምገማዎች ወይም ትዕዛዞች ጋር የተወሰነ መረጃዎች. አግኙን
የ "የአውሮፕላን" የ "የአውሮፕላን" የ "የአውሮፕላን" የ "የአውሮፕላን" የ "የአውሮፕላን" የ "የአውሮፕላን" የ "የአውሮፕላን" የ "የአውሮፕላን" የ "የአውሮፕላን" የ "የአውሮፕላን" የ "የአውሮፕላን" የ "የአውሮፕላን" የ "የአውሮፕላን" የ "የአውሮፕላን" የ "የአውሮፕላን" የ "የአውሮፕላን" የ "የአውሮፕላን" የ "የአውሮፕላን" የ "የአውሮፕላን" የ "የአውሮፕላን" የ "የአውሮፕላን" የ "የአውሮፕላን"MainLLM
ይህ ተንቀሳቃሽ ክስተት በ LLM መውሰድ እና ውጤታማ የ RAG መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ መተግበሪያ ነው.