projecten
Verschillen
Dit geeft de verschillen weer tussen de geselecteerde revisie en de huidige revisie van de pagina.
Beide kanten vorige revisieVorige revisieVolgende revisie | Vorige revisie | ||
projecten [2023/09/30 11:43] – a3dijke | projecten [2024/05/12 14:53] (huidige) – [Database vullen] a3dijke | ||
---|---|---|---|
Regel 2: | Regel 2: | ||
<= [[start|Terug naar start]]\\ | <= [[start|Terug naar start]]\\ | ||
+ | |||
+ | ====== RAG Chatapplicatie ====== | ||
+ | 🔸 Een app gebouwd die data in een Pincone vector database plaatst en vervolgens een chatbot gebouwd die de content uit de database haalt en doorgeeft een een llm (RAG). | ||
+ | |||
+ | ===== Database vullen ===== | ||
+ | **Gegevens opsplitsen: | ||
+ | |||
+ | 🔸 //Deze methode is wel een stuk arbeidsintensiever en kan alleen toegepast worden als degene die de documenten samenstelt van alle ins en outs m.b.t. tot de gewenste resultaten op de hoogte is.//\\ | ||
+ | ✨ Groot voordeel is dan wel dat de resultaten een stuk beter zullen zijn ✨ | ||
+ | |||
+ | < | ||
+ | import os | ||
+ | import pinecone | ||
+ | from langchain.vectorstores import Pinecone | ||
+ | from langchain.embeddings.openai import OpenAIEmbeddings | ||
+ | |||
+ | class Document: | ||
+ | def __init__(self, | ||
+ | self.page_content = text | ||
+ | self.metadata = metadata if metadata is not None else {} | ||
+ | |||
+ | class A3DEmbedding: | ||
+ | def __init__(self, | ||
+ | self.a3dcon = a3dcon | ||
+ | self.a3dmod = a3dmod | ||
+ | |||
+ | # START | ||
+ | def start_embeddings(self): | ||
+ | doc_db = self.embedding_db() | ||
+ | print(doc_db) | ||
+ | self.a3dcon.embeddings_done("> | ||
+ | |||
+ | def embedding_db(self): | ||
+ | embeddings = OpenAIEmbeddings() | ||
+ | pinecone.init( | ||
+ | api_key = self.a3dmod.pinecone_api_key, | ||
+ | environment = self.a3dmod.pinecone_environment | ||
+ | ) | ||
+ | docs_split = self.load_embeddings_from_dir() | ||
+ | doc_db = Pinecone.from_documents( | ||
+ | docs_split, | ||
+ | embeddings, | ||
+ | index_name=self.a3dmod.pinecone_index_name | ||
+ | ) | ||
+ | return doc_db | ||
+ | | ||
+ | def load_embeddings_from_dir(self): | ||
+ | directory = ' | ||
+ | documents = [] | ||
+ | for filename in os.listdir(directory): | ||
+ | if filename.endswith(' | ||
+ | file_path = os.path.join(directory, | ||
+ | with open(file_path, | ||
+ | content = file.read() | ||
+ | parts = content.split(' | ||
+ | for part in parts: | ||
+ | documents.append(Document(part)) | ||
+ | print(f" | ||
+ | return documents | ||
+ | </ | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====== Onderzoek ====== | ||
===== A3Dbot ===== | ===== A3Dbot ===== | ||
- | **Wat:**\\ | ||
- | -> Een Python applicatie bouwen die ik online kan gebruiken op een website.\\ | ||
- | -> De app moet een //(met eigen getrainde data)// AI-chat-bot zijn. Tegelijkertijd wil ik mijn kennis van Python een boost geven. | ||
- | **Middelen: | ||
- | -> Ik ben van plan zo veel mogelijk ven AI gebruik te maken. Dat zal [[https:// | ||
- | -> Verder ben ik wel geïnteresseerd in [[https:// | ||
+ | ==== Stappen: ==== | ||
+ | |||
+ | |||
+ | -> [[embeddings_app|Embedding App]]\\ | ||
+ | -> [[a3d_bot_bouwen|Web Chat App bouwen]]\\ | ||
+ | -> [[a3d_bot_bouwen_2|Web Chat App bouwen 2]] | ||
- | -> [[a3d_bot_testomgeving|Testomgeving opzetten]]\\ | + | -> [[a3d_bot_testomgeving|Testomgeving opzetten |
- | -> [[a3d_bot_embedding|Embedings]]\\ | + | |
- | -> [[a3d_bot_bouwen|App bouwen]]\\ | + | |
- | -> [[a3d_bot_online_zetten|App publiceren - online]]\\ | + | |
---- | ---- | ||
projecten.1696067007.txt.gz · Laatst gewijzigd: 2023/09/30 11:43 door a3dijke