يقوم مساعد ترميز الخرق بإخراج رمز العمل في لغة تعبير Langchain (LCEL) من أجل تطوير نماذج أولية جديدة للذكور.
لا تملك GPT-4 حاليًا أي معرفة بـ LCEL في بيانات التدريب الخاصة بها ، لذلك تستخدم هذه الأداة تقنية توليد (RAG) المخصصة للاسترجاع (RAG) لتحديد أمثلة الترميز ذات الصلة وإضافتها إلى نافذة السياق كأمثلة قليلة.
/data بأمثلة من رمز العمل وبعض محتوى التعريف للمساعدة في الاسترجاع/data في قاعدة بيانات متجه Weaviateيمكنك أن تقرأ عن العملية بمزيد من التفصيل على Substack.
أو شاهد مقطع فيديو تجول.
هذا نموذج أولي يعمل المصمم للتنمية المحلية.
تحسين عملية التضمين والاسترجاع: للحصول على مطابقات عالية الجودة ، أقوم فقط بتضمين وصف اختصار لكل مثال رمز يستخرج التفاصيل الرئيسية للنهج. راجع مثال أدناه حيث يكون الوصف المستخدم في التضمين هو إصدار مختصر من تعليقات الرمز الكامل في رمز المثال:
"""
tags: [langchain, rag]
description: |
- Accept string
- Retrieve matching documents using DocArrayInMemorySearch vectorstore
- Format single prompt
- Parse response as string
"""
# Create a chain that does the following:
# - Accept a string as input
# - Retrieve matching documents from a DocArrayInMemorySearch vectorstore, and pass through the results and the original question to a prompt
# - Format the prompt using variables from the object
# - Pass the prompt to OpenAI
# - Parse the OpenAI response as a string
from langchain.chat_models import ChatOpenAI
from langchain.embeddings import OpenAIEmbeddings
from langchain.prompts import ChatPromptTemplate
from langchain.schema.output_parser import StrOutputParser
from langchain.schema.runnable import RunnableParallel, RunnablePassthrough
from langchain.vectorstores import DocArrayInMemorySearch
vectorstore = DocArrayInMemorySearch.from_texts(
["Lisa likes cooking", "Bears like honey"],
embedding=OpenAIEmbeddings(),
)
retriever = vectorstore.as_retriever()
template = """Answer the question:
{context}
Question: {question}
"""
prompt = ChatPromptTemplate.from_template(template)
model = ChatOpenAI()
output_parser = StrOutputParser()
setup_and_retrieval = RunnableParallel(
{"context": retriever, "question": RunnablePassthrough()}
)
chain = setup_and_retrieval | prompt | model | output_parser
chain.invoke("What does Lisa like?")
بمجرد وجود أمثلة كافية ، قد أستكشف إنشاء نموذج تم ضبطه لتحويل تعليقات الكود التفصيلي إلى هذا الوصف المختصر من أجل تضمين أمثلة الكود وكذلك طلب المستخدم.
قم بتوسيع هذا إلى ما وراء LCEL - قمت بتضمين خيار في علامات Meta Meta Measouck لتحديد التقنيات أو الكلمات الرئيسية. يمكن استخدامها كمرشحات صلبة في استعلام Weaviate ، لكنني لا أستخدمها حاليًا لأن النتائج دقيقة حاليًا. ولكن يمكن أن يصبح ضروريًا مع نمو دليل المثال.