Šiuo metu trys tendencijos AI diegimo temos yra LLMS, RAG ir duomenų bazės. Tai leidžia mums sukurti sistemas, kurios yra tinkamos ir būdingos mūsų naudojimui. Ši AI varoma sistema, derinanti vektorinę duomenų bazę ir AI sukurtus atsakymus, turi programas įvairiose pramonės šakose. Klientų aptarnavimo metu AI pokalbių programos Grąžina žinių bazę dinamiškai. Teisiniams ir finansiniams sektoriams naudinga AI pagrįsta dokumentų apibendrinimas ir atvejo tyrimai. Sveikatos priežiūros AI padėjėjai padeda gydytojams atlikti medicininius tyrimus ir narkotikų sąveiką. E-mokymosi platformos teikia individualizuotus įmonių mokymus. Žurnalistika naudoja AI naujienų apibendrinimui ir faktų tikrinimui. Programinės įrangos kūrimas panaudoja AI kodavimui ir derinimui. Moksliniai tyrimai yra naudingi AI pagrįstai literatūros apžvalgoms. Šis požiūris pagerina žinių gavimą, automatizuoja turinio kūrimą ir suasmenina vartotojų sąveiką keliuose domenuose.
Šiame vadove mes sukursime AI varomą anglų kalbos auklėtoją, naudodami RAG. Sistema integruoja vektorinę duomenų bazę („ChromADB“), kad būtų galima saugoti ir nuskaityti atitinkamą anglų kalbos mokymosi medžiagą ir AI varomą teksto generavimą (GROQ API), kad sukurtų struktūrizuotas ir įtraukiančias pamokas. Darbo eiga apima teksto ištraukimą iš PDF, žinių saugojimas vektorinėje duomenų bazėje, atitinkamo turinio gavimas ir išsamios AI varomų pamokų generavimas. Tikslas yra sukurti interaktyvų anglų dėstytoją, kuris dinamiškai generuoja temas pagrįstas pamokas, tuo pačiu pasinaudodamas anksčiau saugomomis žiniomis, kad būtų pagerintas tikslumas ir kontekstinis aktualumas.
1 žingsnis: būtinų bibliotekų diegimas
!pip install PyPDF2
!pip install groq
!pip install chromadb
!pip install sentence-transformers
!pip install nltk
!pip install fpdf
!pip install torch
PYPDF2 ištraukia tekstą iš PDF failų, todėl jis yra naudingas tvarkant dokumentus pagrįstą informaciją. „GOQ“ yra biblioteka, suteikianti prieigą prie GOQ AI API, įgalinančios išplėstines teksto generavimo galimybes. „ChromadB“ yra vektorinės duomenų bazė, skirta efektyviai nuskaityti tekstą. Sakinių transformatoriai generuoja teksto įterpimus, kurie padeda prasmingai saugoti ir gauti informaciją. NLTK („Natūralios kalbos įrankių rinkinys“) yra gerai žinoma NLP biblioteka, skirta teksto išankstiniam apdorojimui, tokenizavimui ir analizei. FPDF yra lengvoji biblioteka, leidžianti kurti ir manipuliuoti PDF dokumentais, leidžianti generuoti pamokas išsaugoti struktūrizuotu formatu. „Torch“ yra giluminio mokymosi sistema, paprastai naudojama mašininio mokymosi užduotims, įskaitant AI pagrįstą teksto generavimą.
2 žingsnis: NLP tokio rakto duomenų atsisiuntimas
import nltk
nltk.download('punkt_tab')
„Punkt_tab“ duomenų rinkinys atsisiunčiamas naudojant aukščiau pateiktą kodą. nltk.download ('punkt_tab') pateikia duomenų rinkinį, reikalingą sakinio ženklo ženklui. Tokenizacija yra teksto padalijimas į sakinius ar žodžius, kurie yra labai svarbūs norint suskaidyti didelius teksto kūnus į valdomus segmentus apdorojimui ir gavimo.
3 žingsnis: NLTK duomenų katalogo nustatymas
working_directory = os.getcwd()
nltk_data_dir = os.path.join(working_directory, 'nltk_data')
nltk.data.path.append(nltk_data_dir)
nltk.download('punkt_tab', download_dir=nltk_data_dir)
Mes nustatysime specialų NLTK duomenų katalogą. Funkcija OS.GETCWD () nuskaito dabartinį darbo katalogą, o jame sukuriamas naujas katalogas NLTK_DATA, kad būtų galima laikyti su NLP susijusius išteklius. NLTK.DATA.Path.Append (NLTK_DATA_DIR) komanda užtikrina, kad šis katalogas atsisiųstų NLTK duomenų rinkinius. „Punkt_tab“ duomenų rinkinys, reikalingas sakinio ženklams, atsisiunčiamas ir saugomas nurodytame kataloge.
4 žingsnis: Reikalingų bibliotekų importavimas
import os
import torch
from sentence_transformers import SentenceTransformer
import chromadb
from chromadb.utils import embedding_functions
import numpy as np
import PyPDF2
from fpdf import FPDF
from functools import lru_cache
from groq import Groq
import nltk
from nltk.tokenize import sent_tokenize
import uuid
from dotenv import load_dotenv
Čia importuojame visas būtinas bibliotekas, naudojamas visame nešiojamojo kompiuterio knygelėje. OS naudojama failų sistemos operacijoms. „Torch“ importuojamas atlikti su mokymosi susijusias užduotis. Sakinių transformatoriai yra paprastas būdas generuoti įterpimus iš teksto. „Chromadb“ ir jo „Embedding_functions“ modulis padeda saugoti ir gauti atitinkamą tekstą. „Numpy“ yra matematinė biblioteka, naudojama masyvams tvarkyti ir skaitmeniniams skaičiavimams tvarkyti. PYPDF2 yra naudojamas tekstui išgauti iš PDFS. FPDF leidžia generuoti PDF dokumentus. LRU_CACHE yra naudojamas talpyklos funkcijų išėjimams optimizavimui. „Groq“ yra AI paslauga, kuri sukuria į žmogaus atsakymus. NLTK teikia NLP funkcijas, o „Senve_Tokenize“ yra specialiai importuotas, kad tekstas būtų padalytas į sakinius. UUID generuoja unikalius ID, o „Load_dotenV“ apkrovos aplinkos kintamuosius iš .env failo.
5 žingsnis: Aplinkos kintamųjų ir API klavišų įkėlimas
load_dotenv()
api_key = os.getenv('api_key')
os.environ("GROQ_API_KEY") = api_key
#or manually retrieve key from https://console.groq.com/ and add it here
Per aukščiau pateiktą kodą įkelsime, aplinkos kintamuosius iš .env failo. Funkcija „Load_dotenv“ () nuskaito aplinkos kintamuosius iš .env failo ir suteikia juos prieinamą „Python“ aplinkoje. API_KEKE yra gaunama naudojant OS.GETENV („API_KEY“), užtikrinant saugų API raktų valdymą, nesukuriant jo scenarijuje. Tada raktas saugomas „Os.environ“ („Groq_api_key“), todėl jis yra prieinamas vėlesniems API skambučiams.
6 žingsnis: Vektoriaus duomenų bazės klasės apibrėžimas
class VectorDatabase:
def __init__(self, collection_name="english_teacher_collection"):
self.client = chromadb.PersistentClient(path="./chroma_db")
self.encoder = SentenceTransformer('all-MiniLM-L6-v2')
self.embedding_function = embedding_functions.SentenceTransformerEmbeddingFunction(model_name="all-MiniLM-L6-v2")
self.collection = self.client.get_or_create_collection(name=collection_name, embedding_function=self.embedding_function)
def add_text(self, text, chunk_size):
sentences = sent_tokenize(text, language="english")
chunks = self._create_chunks(sentences, chunk_size)
ids = (str(uuid.uuid4()) for _ in chunks)
self.collection.add(documents=chunks, ids=ids)
def _create_chunks(self, sentences, chunk_size):
chunks = ()
for i in range(0, len(sentences), chunk_size):
chunk = ' '.join(sentences(i:i+chunk_size))
chunks.append(chunk)
return chunks
def retrieve(self, query, k=3):
results = self.collection.query(query_texts=(query), n_results=k)
return results('documents')(0)
Ši klasė apibrėžia vektordatabą, kuri sąveikauja su „Chromadb“, kad galėtų saugoti ir nuskaityti teksto žinias. Funkcija __init __ () inicijuoja duomenų bazę, sukurdama nuolatinį chroma_db katalogą ilgalaikiam saugojimui. „SentenCetransformer“ modelis („All-Minilm-L6-V2“) generuoja teksto įterpimus, kurie teksto informaciją paverčia skaitmeninėmis reprezentacijomis, kurias galima efektyviai saugoti ir ieškoti. Funkcija „Add_text“ () nutraukia įvesties tekstą į sakinius ir padalija juos į mažesnius gabaliukus, prieš saugodamas juos vektorinėje duomenų bazėje. Funkcija _Create_Chunks () užtikrina, kad tekstas būtų tinkamai segmentuotas, todėl atgavimas tampa efektyvesnis. Funkcija „RetrieRe“ () užima užklausą ir grąžina svarbiausius saugomus dokumentus, pagrįstus panašumu.
7 žingsnis: AI pamokos generavimo įgyvendinimas naudojant GROQ
class GroqGenerator:
def __init__(self, model_name="mixtral-8x7b-32768"):
self.model_name = model_name
self.client = Groq()
def generate_lesson(self, topic, retrieved_content):
prompt = f"Create an engaging English lesson about {topic}. Use the following information:n"
prompt += "nn".join(retrieved_content)
prompt += "nnLesson:"
chat_completion = self.client.chat.completions.create(
model=self.model_name,
messages=(
{"role": "system", "content": "You are an AI English teacher designed to create an elaborative and engaging lesson."},
{"role": "user", "content": prompt}
),
max_tokens=1000,
temperature=0.7
)
return chat_completion.choices(0).message.content
Ši klasė „Groqgenerator“ yra atsakinga už AI varomų anglų kalbos pamokas. Jis sąveikauja su GROQ AI modeliu per API skambutį. Funkcija __init __ () inicijuoja generatorių, naudodamas „Mixtral-8x7B-32768“ modelį, skirtą pokalbiui AI. Funkcija generate_lesson () imasi temos ir gauna žinias kaip įvestį, suformuoja raginimą ir siunčia ją į „Groq“ API, kad galėtų generuoti pamoką. PG sistema grąžina struktūrizuotą pamoką su paaiškinimais ir pavyzdžiais, kuriuos vėliau galima laikyti ar rodyti.
8 žingsnis: Vektoriaus gavimo ir AI generavimo derinimas
class RAGEnglishTeacher:
def __init__(self, vector_db, generator):
self.vector_db = vector_db
self.generator = generator
@lru_cache(maxsize=32)
def teach(self, topic):
relevant_content = self.vector_db.retrieve(topic)
lesson = self.generator.generate_lesson(topic, relevant_content)
return lesson
Aukščiau pateikta klasė „RagenglishTeacher“ integruoja „Vectordatabase“ ir „GroqGenerator“ komponentus, kad būtų sukurta atkūrimo grūdo (RAG) sistema. Funkcija „Teach ()“ gauna atitinkamą turinį iš „Vector“ duomenų bazės ir perduoda jį „GroqGenerator“, kad būtų sudaryta struktūrizuota pamoka. „LRU_CACHE“ („MaxSize = 32“) dekoratorius talpina iki 32 anksčiau, anksčiau buvo sukurtos pamokos, kaip pagerinti efektyvumą, vengdama pakartotinių skaičiavimų.
Apibendrinant, mes sėkmingai sukūrėme AI varomą anglų kalbos dėstytoją, kuriame derinama vektorinės duomenų bazė („ChromadB“) ir GOQ AI modelis, kad būtų galima įgyvendinti gavimo atvejų kartą (RAG). Sistema gali išgauti tekstą iš PDFS, struktūrizuotai išsaugoti svarbias žinias, gauti kontekstinę informaciją ir dinamiškai generuoti išsamias pamokas. Šis dėstytojas teikia patrauklias, suvokiančias kontekstą ir individualizuotas pamokas, naudodamas sakinio įterpimus, kad būtų galima efektyviai gauti ir AI generuojamus atsakymus į struktūrizuotą mokymąsi. Šis požiūris užtikrina, kad besimokantieji gautų tikslias, informatyvias ir gerai organizuotas anglų kalbos pamokas, nereikalaujant rankinio turinio kūrimo. Sistemą galima toliau išplėsti integruojant papildomus mokymosi modulius, pagerindama duomenų bazės efektyvumą arba patobulinant AI reakcijas, kad mokymo procesas taptų interaktyvesnis ir intelektualesnis.
Naudokite „Colab“ užrašų knygelė čia. Be to, nepamirškite sekti mūsų „Twitter“ ir prisijunkite prie mūsų „Telegram“ kanalas ir „LinkedIn GrOUP. Nepamirškite prisijungti prie mūsų 70K+ ml subreddit.
🚨 Susipažinkite su „Intellagent“: atvirojo kodo daugialypės terpės sistema, skirta įvertinti sudėtingą pokalbio AI sistemą (Paaukštintas)
„MarktechPost“ ir „IIT Madras“ dvigubo laipsnio studentė konsultacinė Sana Hassan aistringai taiko technologijas ir AI, kad galėtų spręsti realaus pasaulio iššūkius. Turėdamas didelį susidomėjimą išspręsti praktines problemas, jis pateikia naują perspektyvą AI ir realaus gyvenimo sprendimų sankryžai.
✅ (rekomenduojama) Prisijunkite prie mūsų telegramos kanalo