Ενημερώθηκε στις 25 Σεπτ 2025
8 λεπ
# pip install langchain langchain-openaifrom langchain_openai import ChatOpenAIfrom langchain_core.prompts import ChatPromptTemplate# 1) Modelllm = ChatOpenAI(model="gpt-4o-mini", temperature=0)# 2) Promptprompt = ChatPromptTemplate.from_messages( και οδηγός streaming.---## Δομικά στοιχεία που θα χρησιμοποιείτε το 80% του χρόνου### 1) Προτροπές και ανάλυση εξόδου- Χρησιμοποιήστε το `ChatPromptTemplate` για δομημένες προτροπές.- Αναλύστε τις εξόδους με `StrOutputParser` ή JSON parsers για πληκτρολογημένες αποκρίσεις.```pythonfrom langchain_core.output_parsers import StrOutputParserfrom langchain_core.prompts import ChatPromptTemplatefrom langchain_openai import ChatOpenAIllm = ChatOpenAI(model="gpt-4o-mini")prompt = ChatPromptTemplate.from_template("""Συνοψίστε το ακόλουθο κείμενο σε 3 κουκκίδες:---{text}""")parser = StrOutputParserchain = prompt | llm | parsersummary = chain.invoke({"text": "LangChain helps build LLM apps with RAG and tools."})print(summary)# pip install faiss-cpu tiktokenfrom langchain_openai import OpenAIEmbeddings, ChatOpenAIfrom langchain_community.vectorstores import FAISSfrom langchain_text_splitters import RecursiveCharacterTextSplitterfrom langchain_core.prompts import ChatPromptTemplate# Prepare documentstexts = .---## Από το πρωτότυπο στην παραγωγή: Ένα βήμα προς βήμα σχέδιο### Βήμα 1: Ορίστε την ιστορία χρήστη- Ποιος είναι ο χρήστης; Τι προσπαθεί να κάνει;- Παράδειγμα: «Ένας agent υποστήριξης που απαντά σε ερωτήσεις προϊόντων από εσωτερικά έγγραφα και πρόσφατα δελτία υποστήριξης».### Βήμα 2: Επιλέξτε την ελάχιστη βιώσιμη στοίβα- Μοντέλο: Επιλέξτε ένα μοντέλο με λογική τιμή και αξιόπιστο (π.χ., GPT-4o-mini ή ένα frontier open model).- Δεδομένα: Αποφασίστε αν χρειάζεστε RAG τώρα. Αν ναι, ξεκινήστε με το FAISS τοπικά.- I/O: Χρησιμοποιήστε το LCEL για γρήγορη επανάληψη. Αποφύγετε τον προσαρμοσμένο κώδικα κόλλας.### Βήμα 3: Εφαρμόστε έναν καθαρό βρόχο RAG- Διαχωρίστε σωστά τα έγγραφα.- Ευρετηριάστε τις ενσωματώσεις.- Προτρέψτε με περιεχόμενο και παραπομπές.- Προσθέστε μια δικλείδα ασφαλείας για να αποφύγετε την ψευδαίσθηση όταν δεν βρεθεί σχετικό περιεχόμενο.```pythonfrom langchain_core.output_parsers import StrOutputParserfrom langchain_core.prompts import ChatPromptTemplateqa_prompt = ChatPromptTemplate.from_template("""Απαντήστε στην ερώτηση χρησιμοποιώντας ΜΟΝΟ το ΠΕΡΙΕΧΟΜΕΝΟ παρακάτω. Αν η απάντηση δεν είναιστο περιεχόμενο, πείτε «Δεν γνωρίζω». Συμπεριλάβετε τα αναφερόμενα ID εγγράφων.ΠΕΡΙΕΧΟΜΕΝΟ:{context}ΕΡΩΤΗΣΗ: {question}""")parser = StrOutputParserrag_chain = (RunnableParallel(context=retriever, question=RunnableLambda(lambda x: x.### Βήμα 5: Πληκτρολογημένες έξοδοι και επικύρωση- Χρησιμοποιήστε το `PydanticOutputParser` ή το σχήμα JSON για να επιβάλετε τη δομή για τις αποκρίσεις API.- Επικυρώστε τα πεδία για να εντοπίσετε την παρέκκλιση του μοντέλου.### Βήμα 6: Εργαλεία και κλήση συναρτήσεων για πραγματικές εργασίες- Εισαγάγετε εργαλεία με φειδώ.- Συνήθη εργαλεία: αριθμομηχανή, αναζήτηση στον ιστό, εκτελεστής ερωτημάτων SQL, εκτελεστής κώδικα.- Περιγράψτε με σαφήνεια τις δυνατότητες των εργαλείων στις συμβολοσειρές τεκμηρίωσης.### Βήμα 7: Σκληραγώγηση- Στρατηγικές περιορισμού ρυθμού και επανάληψης.- Χρονικά όρια και διακόπτες κυκλώματος.- Φίλτρα ασφαλείας και έλεγχοι περιεχομένου.### Βήμα 8: Αξιολόγηση & Συνεχής βελτίωση- Δοκιμάστε με χρυσά σύνολα δεδομένων (είσοδος → αναμενόμενη έξοδος).- Αξιολογήστε την πιστότητα, την πληρότητα της απάντησης και την ακρίβεια των παραπομπών.- Μετρήστε το ποσοστό επιτυχίας ανάκτησης και την καθυστέρηση.---## Συνήθη μοτίβα και παγίδες- Ξεκινήστε απλά: Αλυσίδες πριν από τους agents. Θα έχετε προβλεψιμότητα και χαμηλότερο κόστος.- Το Chunking έχει σημασία: Η ρύθμιση του μεγέθους/επικάλυψης του chunk μπορεί να αλλάξει την ποιότητα ανάκτησης περισσότερο από την αλλαγή του μοντέλου.- Διαρροή προτροπής: Μην γεμίζετε τον νεροχύτη στις προτροπές συστήματος. Κρατήστε τις εστιασμένες.- Ντετερμινισμός: Ορίστε `temperature=0` για αξιολόγηση και κρίσιμες ροές εργασιών.- Streaming UX: Κάντε stream tokens στο UI ενώ το υπόλοιπο σύστημα ανακτά στοιχεία ή προφορτώνει το περιεχόμενο.- Δομημένες έξοδοι: Χρησιμοποιήστε parsers για να κάνετε την ενσωμάτωση downstream ανώδυνη.---## Ένα πλήρες μίνι έργο: Ερωτήσεις & Απαντήσεις εγγράφων με παραπομπέςΑυτό το παράδειγμα συνδέει τα πάντα: κατάποση, RAG, δημιουργία απαντήσεων και streaming.```python# pip install langchain langchain-openai faiss-cpu tiktokenfrom langchain_openai import ChatOpenAI, OpenAIEmbeddingsfrom langchain_text_splitters import RecursiveCharacterTextSplitterfrom langchain_community.vectorstores import FAISSfrom langchain_core.prompts import ChatPromptTemplatefrom langchain_core.output_parsers import StrOutputParserfrom langchain_core.runnables import RunnableParallel, RunnableLambda# 1) Ingestcorpus = {"pricing": "Our Pro plan supports 1M context tokens and includes priority support.","limits": "The API rate limit is 60 requests per minute for Pro users.","security": "We store logs for 30 days unless logging is disabled by the admin.",}splitter = RecursiveCharacterTextSplitter(chunk_size=300, chunk_overlap=50)all_chunks, ids = [], []for doc_id, text in corpus.items:for i, chunk in enumerate(splitter.split_text(text)):all_chunks.append(chunk)ids.append(f"{doc_id}-{i}")# 2) Indexdb = FAISS.from_texts(all_chunks, OpenAIEmbeddings)retriever = db.as_retriever(k=4)# 3) Promptprompt = ChatPromptTemplate.from_template("""You are a support assistant. Use the CONTEXT to answer.If unsure, say "I don't know." Include citations of source IDs.CONTEXT:{context}QUESTION: {question}""")# 4) Model and parserllm = ChatOpenAI(model="gpt-4o-mini", temperature=0)parser = StrOutputParser# 5) Compose chainrag = (RunnableParallel(context=retriever,question=RunnableLambda(lambda x: x["question"]) # pass-through)| prompt| llm| parser)# 6) Ask a questionfor chunk in rag.stream({"question": "What are Pro rate limits and log retention?"}):print(chunk, end="", flush=True)batch σε Runnables για απόδοση.prompt | llm και δοκιμάστε με .invoke ή .stream. Τα επίσημα tutorials περιγράφουν βήμα προς βήμα απλή συνομιλία, RAG και agents για μια γρήγορη έναρξη.Runnable υποστηρίζουν .stream για συγχρονισμό και .astream για ασύγχρονο για να αποδώσουν chunks καθώς φτάνουν. Ο οδηγός streaming καλύπτει τη χρήση και τις βέλτιστες πρακτικές.
Πώς να Εξοικειωθείτε με το ChatPDF: Ταχύτερη Κατανόηση Πολύπλοκων Εγγράφων

Η καλύτερη εναλλακτική λύση για αυτόματη μετάφραση X για γρήγορα και ακριβή έγγραφα

Η μετάφραση AI της Samsung δεν είναι διαθέσιμη στο Ιράν; Πρακτικές λύσεις

Εργαλεία μετάφρασης Περσικών: ένας πρακτικός οδηγός για γρηγορότερη και ακριβέστερη εργασία

Η καλύτερη εναλλακτική του Grok για βαθιά, τεκμηριωμένη έρευνα

Τα 15 Καλύτερα Χαρακτηριστικά μιας Γεννήτριας Εικόνων AI που θα Χρησιμοποιήσετε Πραγματικά