Ein benutzerfreundlicher Eingabeaufbau-Bauunternehmer zum Erstellen strukturierter Eingabeaufforderungen in Typenkript für Großsprachermodelle (LLMs) und AI-Anwendungen.
Dieses Projekt zielt darauf ab, die sofortige Lesbarkeit und Wartbarkeit durch eine einfache Schnittstelle zu verbessern, die mit verschiedenen KI -Modellen von OpenAI, Anthropic, Google Gemini und vielem mehr kompatibel ist. Es verwendet auch eine von Anthropic empfohlene XML-basierte Eingabeaufforderungsstruktur, um die sofortige Qualität und das Modellverständnis zu verbessern.
Ursprünglich entwickelt, um die internen Bedürfnisse von Dreamloom zu erfüllen, haben wir es offen, der breiteren Gemeinschaft zugute kommen. Wir begrüßen Ihre Vorschläge für Verbesserungen und andere Feedback zu Github.
Tragen Sie zum Projekt auf Github bei
In diesem Projekt werden XML-basierte Eingaben verwendet, was die bevorzugte Struktur für das Claude-AI-Modell von Anthropic ist. Gemäß der Dokumentation von Anthropic bietet die Verwendung von XML -Tags in Eingabeaufforderungen mehrere Vorteile:
Obwohl dieser strukturierte Ansatz für die schnelle Engineering von Anthropic for Claude empfohlen wird, kann er auch bei der Arbeit mit anderen LLM- und KI -Modellen äußerst vorteilhaft sein. Außerdem helfen Sie den Modellen dabei, Ihre Eingabeaufforderungen zu verstehen und zu reagieren, sodass sie genauer und nützlicher werden.
Installieren Sie die Eingabeaufforderung-EZ mit NPM:
npm install prompt-ez
Die PromptBuilder
-Klasse ist die Hauptschnittstelle zum Erstellen strukturierter Eingabeaufforderungen. Hier finden Sie einen kurzen Überblick über seine Methoden:
tag(name: string, contentFn?: (builder: PromptBuilder) => void): PromptBuilder
name
: Der Name des Tags.contentFn
: Optionale Funktion zum Hinzufügen von Inhalten im Tag. text(text: string): PromptBuilder
list(items: string[]): PromptBuilder
inputs(): PromptBuilder
build(params?: Record<string, unknown>): string
params
: Optionales Objekt mit Schlüsselwertpaaren für dynamische Eingänge.Hier ist ein einfaches Beispiel für das Erstellen einer strukturierten Eingabeaufforderung:
import PromptBuilder from 'prompt-ez' ;
const prompt = new PromptBuilder ( )
. tag ( 'system' , b => b
. text ( 'You are a helpful AI assistant.' )
. text ( 'Please provide accurate and concise information.' )
)
. tag ( 'task' , b => b
. text ( 'Explain the benefits of regular exercise.' )
)
. tag ( 'output_format' , b => b
. text ( 'Provide the explanation in a paragraph.' )
)
. build ( ) ;
console . log ( prompt ) ;
Dies erzeugt die folgende Eingabeaufforderung:
< system >
You are a helpful AI assistant.
Please provide accurate and concise information.
</ system >
< task >
Explain the benefits of regular exercise.
</ task >
< output_format >
Provide the explanation in a paragraph.
</ output_format >
Hier erfahren Sie, wie Sie dynamische Eingaben in Ihren Eingabeaufforderungen verwenden:
const promptWithInputs = new PromptBuilder ( )
. tag ( 'system' , b => b
. text ( 'You are a language translator.' )
)
. tag ( 'task' , b => b
. text ( 'Translate the following text:' )
. inputs ( )
)
. build ( {
source_language : 'English' ,
target_language : 'French' ,
text : 'Hello, how are you?'
} ) ;
console . log ( promptWithInputs ) ;
Dies erzeugt:
< system >
You are a language translator.
</ system >
< task >
Translate the following text:
< source_language >English</ source_language >
< target_language >French</ target_language >
< text >Hello, how are you?</ text >
</ task >
Hier ist ein komplexeres Beispiel, das verschachtelte Tags, Listenerstellung und dynamische Eingaben demonstriert:
import PromptBuilder from 'prompt-ez' ;
export const AI_MEDICAL_DIAGNOSIS_PROMPT = new PromptBuilder ( )
. tag ( 'medical_diagnosis_prompt' , ( builder ) =>
builder
. tag ( 'role' , ( b ) => b . text ( 'Act as an AI medical assistant. Analyze the provided patient information and suggest three potential diagnoses with recommended next steps.' ) )
. inputs ( )
. tag ( 'guidelines' , ( b ) =>
b
. text ( 'For each potential diagnosis:' )
. list ( [
'Consider the patient's symptoms, medical history, and test results' ,
'Provide a brief explanation of the condition' ,
'List key symptoms that align with the diagnosis' ,
'Suggest additional tests or examinations if needed' ,
'Outline potential treatment options' ,
'Indicate the urgency level (e.g., immediate attention, routine follow-up)' ,
'Highlight any lifestyle changes or preventive measures' ,
'Consider possible complications if left untreated' ,
'Use medical terminology appropriately, with layman explanations' ,
'Provide a confidence level for each diagnosis (low, medium, high)' ,
'First analyze the information thoroughly, then produce the output'
] )
)
. tag ( 'reminder' , ( b ) => b . text ( 'Ensure the diagnoses are evidence-based and consider a range of possibilities from common to rare conditions. Always emphasize the importance of consulting with a human healthcare professional for a definitive diagnosis.' ) )
. tag ( 'output_format' , ( b ) =>
b . list ( [
'Present information in a clear, structured manner' ,
'Use bullet points for symptoms and recommendations' ,
'Include relevant medical terms with brief explanations' ,
'Provide a summary of each potential diagnosis' ,
'Suggest follow-up questions to gather more information if needed' ,
'End with a disclaimer about the limitations of AI diagnosis'
] )
)
)
. build ( {
patient_age : 45 ,
patient_gender : 'Female' ,
main_symptoms : 'Persistent headache, blurred vision, and occasional dizziness for the past two weeks' ,
medical_history : 'Hypertension, controlled with medication' ,
recent_tests : 'Blood pressure: 150/95 mmHg, Blood sugar: 110 mg/dL (fasting)'
} ) ;
console . log ( AI_MEDICAL_DIAGNOSIS_PROMPT ) ;
Dies erzeugt eine komplexe, strukturierte Aufforderung für ein Szenario der AI Medical Diagnose:
< medical_diagnosis_prompt >
< role >Act as an AI medical assistant. Analyze the provided patient information and suggest three potential diagnoses with recommended next steps.</ role >
< patient_age >45</ patient_age >
< patient_gender >Female</ patient_gender >
< main_symptoms >Persistent headache, blurred vision, and occasional dizziness for the past two weeks</ main_symptoms >
< medical_history >Hypertension, controlled with medication</ medical_history >
< recent_tests >Blood pressure: 150/95 mmHg, Blood sugar: 110 mg/dL (fasting)</ recent_tests >
< guidelines >
For each potential diagnosis:
1. Consider the patient's symptoms, medical history, and test results
2. Provide a brief explanation of the condition
3. List key symptoms that align with the diagnosis
4. Suggest additional tests or examinations if needed
5. Outline potential treatment options
6. Indicate the urgency level (e.g., immediate attention, routine follow-up)
7. Highlight any lifestyle changes or preventive measures
8. Consider possible complications if left untreated
9. Use medical terminology appropriately, with layman explanations
10. Provide a confidence level for each diagnosis (low, medium, high)
11. First analyze the information thoroughly, then produce the output
</ guidelines >
< reminder >Ensure the diagnoses are evidence-based and consider a range of possibilities from common to rare conditions. Always emphasize the importance of consulting with a human healthcare professional for a definitive diagnosis.</ reminder >
< output_format >
1. Present information in a clear, structured manner
2. Use bullet points for symptoms and recommendations
3. Include relevant medical terms with brief explanations
4. Provide a summary of each potential diagnosis
5. Suggest follow-up questions to gather more information if needed
6. End with a disclaimer about the limitations of AI diagnosis
</ output_format >
</ medical_diagnosis_prompt >
Wir begrüßen Beiträge! Weitere Informationen zum Einstieg finden Sie in unserem beitragenden Leitfaden.
prompt-ez wird unter der MIT-Lizenz veröffentlicht. Weitere Informationen finden Sie in der Lizenzdatei.