Created
May 6, 2026 20:05
-
-
Save pazteddy/1e85a17023bee4b94edc5f5c1981403f to your computer and use it in GitHub Desktop.
Procesar cada fragmento de forma personalizada (streamClaudeWithCallback), RAG_SYSTEM_PROMPT y augmentedPrompt
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| const RAG_SYSTEM_PROMPT = `Eres DevAssistant, un asistente de documentación técnica. | |
| Tu trabajo es responder preguntas basándote ÚNICAMENTE en la documentación que se te proporciona como contexto. | |
| Reglas importantes: | |
| 1. Si la información está en el contexto: responde citando la fuente (nombre del archivo y sección) | |
| 2. Si la información NO está en el contexto: di claramente "No tengo esa información en la documentación disponible" | |
| 3. Nunca inventes datos técnicos, versiones, endpoints, o configuraciones | |
| 4. Usa markdown para formatear tu respuesta (código, listas, encabezados) | |
| 5. Sé conciso y directo — los developers prefieren respuestas específicas`; | |
| function formatContext(chunks: RetrievedChunk[]): string { | |
| return chunks | |
| .map( | |
| (chunk) => | |
| `[FUENTE: ${chunk.metadata.source} | Sección: ${chunk.metadata.heading}]\n${chunk.content}` | |
| ) | |
| .join("\n\n---\n\n"); | |
| } | |
| const augmentedPrompt = `Contexto recuperado de la documentación: | |
| --- | |
| ${} | |
| --- | |
| Basándote ÚNICAMENTE en el contexto anterior, responde la siguiente pregunta. | |
| Si la información no está en el contexto, indica claramente que no tienes esa información. | |
| Cita la fuente (nombre del archivo y sección) cuando sea posible. | |
| Pregunta: ${}`; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| export async function streamClaudeWithCallback( | |
| prompt: string, | |
| onChunk: (textChunk: string) => void, | |
| systemPrompt?: string, | |
| ): Promise<string> { | |
| let fullResponse = ""; | |
| const responseStream = client.messages.stream({ | |
| model: config.anthropicModel, | |
| max_tokens: 1024, | |
| ...(systemPrompt && { system: systemPrompt }), | |
| messages: [{ role: "user", content: prompt }], | |
| }); | |
| responseStream.on("text", (textChunk) => { | |
| onChunk(textChunk); | |
| fullResponse += textChunk; | |
| }); | |
| await responseStream.finalMessage(); | |
| return fullResponse; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment