Recuperación Aumentada Generativa (RAG) para la creación de chatbot de dominio específico
En este proyecto se desarrolló una aplicación web que funciona como chatbot interactivo, en la cual se utilizó la técnica de Recuperación Aumentada Generativa para otorgarle acceso a la información de un dominio específico. En el margen del proyecto, se exploraron diferentes técnicas para mejorar el...
- Autores:
-
Cohen Solano, Kevin
- Tipo de recurso:
- Trabajo de grado de pregrado
- Fecha de publicación:
- 2023
- Institución:
- Universidad de los Andes
- Repositorio:
- Séneca: repositorio Uniandes
- Idioma:
- spa
- OAI Identifier:
- oai:repositorio.uniandes.edu.co:1992/73530
- Acceso en línea:
- https://hdl.handle.net/1992/73530
- Palabra clave:
- HyDE
Embedding
Large Language Models (LLMs)
OpenAI
Prompt
Pipeline
LangChain
Chatbot
Recuperación Aumentada Generativa (RAG)
Bellas Artes
Ingeniería de Prompts
Base de Datos Vectorial
Documentos
Modelo
Ingeniería
- Rights
- embargoedAccess
- License
- Attribution-NoDerivatives 4.0 International
id |
UNIANDES2_28d7be9dc014757c262055a2a1513fce |
---|---|
oai_identifier_str |
oai:repositorio.uniandes.edu.co:1992/73530 |
network_acronym_str |
UNIANDES2 |
network_name_str |
Séneca: repositorio Uniandes |
repository_id_str |
|
dc.title.spa.fl_str_mv |
Recuperación Aumentada Generativa (RAG) para la creación de chatbot de dominio específico |
title |
Recuperación Aumentada Generativa (RAG) para la creación de chatbot de dominio específico |
spellingShingle |
Recuperación Aumentada Generativa (RAG) para la creación de chatbot de dominio específico HyDE Embedding Large Language Models (LLMs) OpenAI Prompt Pipeline LangChain Chatbot Recuperación Aumentada Generativa (RAG) Bellas Artes Ingeniería de Prompts Base de Datos Vectorial Documentos Modelo Ingeniería |
title_short |
Recuperación Aumentada Generativa (RAG) para la creación de chatbot de dominio específico |
title_full |
Recuperación Aumentada Generativa (RAG) para la creación de chatbot de dominio específico |
title_fullStr |
Recuperación Aumentada Generativa (RAG) para la creación de chatbot de dominio específico |
title_full_unstemmed |
Recuperación Aumentada Generativa (RAG) para la creación de chatbot de dominio específico |
title_sort |
Recuperación Aumentada Generativa (RAG) para la creación de chatbot de dominio específico |
dc.creator.fl_str_mv |
Cohen Solano, Kevin |
dc.contributor.advisor.none.fl_str_mv |
Manrique Piramanrique, Rubén Francisco |
dc.contributor.author.none.fl_str_mv |
Cohen Solano, Kevin |
dc.contributor.jury.none.fl_str_mv |
Manrique Piramanrique, Rubén Francisco |
dc.contributor.researchgroup.none.fl_str_mv |
Facultad de Ingeniería |
dc.subject.keyword.eng.fl_str_mv |
HyDE Embedding Large Language Models (LLMs) OpenAI Prompt Pipeline LangChain |
topic |
HyDE Embedding Large Language Models (LLMs) OpenAI Prompt Pipeline LangChain Chatbot Recuperación Aumentada Generativa (RAG) Bellas Artes Ingeniería de Prompts Base de Datos Vectorial Documentos Modelo Ingeniería |
dc.subject.keyword.spa.fl_str_mv |
Chatbot Recuperación Aumentada Generativa (RAG) Bellas Artes Ingeniería de Prompts Base de Datos Vectorial Documentos Modelo |
dc.subject.themes.none.fl_str_mv |
Ingeniería |
description |
En este proyecto se desarrolló una aplicación web que funciona como chatbot interactivo, en la cual se utilizó la técnica de Recuperación Aumentada Generativa para otorgarle acceso a la información de un dominio específico. En el margen del proyecto, se exploraron diferentes técnicas para mejorar el funcionamiento del RAG, tales como ingeniería de prompts y HyDE. Igualmente, se hizo la comparación entre los modelos grandes de lenguaje GPT 3.5 y GPT 4. Esta aplicación fue puesta a prueba con los potenciales usuarios finales, siendo estos tanto estudiantes como profesores del Instituto Departamental de Bellas Artes. Gracias a esto se obtuvieron variedad de resultados que evidencian la eficiencia de ciertas estrategias, así como del nivel de aceptación final de los usuarios. |
publishDate |
2023 |
dc.date.issued.none.fl_str_mv |
2023-12-04 |
dc.date.accessioned.none.fl_str_mv |
2024-01-26T20:56:54Z |
dc.date.accepted.none.fl_str_mv |
2024-01-23 |
dc.date.available.none.fl_str_mv |
2025-01-22 |
dc.type.none.fl_str_mv |
Trabajo de grado - Pregrado |
dc.type.driver.none.fl_str_mv |
info:eu-repo/semantics/bachelorThesis |
dc.type.version.none.fl_str_mv |
info:eu-repo/semantics/acceptedVersion |
dc.type.coar.none.fl_str_mv |
http://purl.org/coar/resource_type/c_7a1f |
dc.type.content.none.fl_str_mv |
Text |
dc.type.redcol.none.fl_str_mv |
http://purl.org/redcol/resource_type/TP |
format |
http://purl.org/coar/resource_type/c_7a1f |
status_str |
acceptedVersion |
dc.identifier.uri.none.fl_str_mv |
https://hdl.handle.net/1992/73530 |
dc.identifier.instname.none.fl_str_mv |
instname:Universidad de los Andes |
dc.identifier.reponame.none.fl_str_mv |
reponame:Repositorio Institucional Séneca |
dc.identifier.repourl.none.fl_str_mv |
repourl:https://repositorio.uniandes.edu.co/ |
url |
https://hdl.handle.net/1992/73530 |
identifier_str_mv |
instname:Universidad de los Andes reponame:Repositorio Institucional Séneca repourl:https://repositorio.uniandes.edu.co/ |
dc.language.iso.none.fl_str_mv |
spa |
language |
spa |
dc.relation.references.none.fl_str_mv |
DeepLearning.AI. (2023, August 9). ChatGPT Prompt Engineering for Developers. https://www.deeplearning.ai/short-courses/ DeepLearning.AI. (2023, August 9). Building Systems with the ChatGPT API. https://www.deeplearning.ai/short-courses/ Gao, L., Ma, X., Lin, J., Callan, J. (2022). Precise Zero-Shot Dense Retrieval without Relevance Labels. https://arxiv.org/abs/2212.10496. Jiang, Z., Xu, F. F., Araki, J., & Neubig, G. (2020). How can we know what language models know? Transactions of the Association for Computational Linguistics, 8, 423–438. https://doi.org/10.1162/tacl_a_00324. Mao, Y., He, P., Liu, X., Shen, Y., Gao, J., Han, J., & Chen, W. (2021). Generation-Augmented Retrieval for Open-Domain Question Answering. https://arxiv.org/abs/2009.08553. OpenAI Platform. (n.d.). https://platform.openai.com/docs/guides/embeddings/what-are-embeddings. Question answering using embeddings-based search | OpenAI Cookbook. (s. f.). https://cookbook.openai.com/examples/question_answering_using_embeddings. Zhang, Z., Zhang Aston, Li, M., & Smola, A. (2021). AUTOMATIC CHAIN OF THOUGHT PROMPTING IN LARGE LANGUAGE MODELS [Academic Article]. Shanghai Jiao Tong University. |
dc.rights.en.fl_str_mv |
Attribution-NoDerivatives 4.0 International |
dc.rights.uri.none.fl_str_mv |
http://creativecommons.org/licenses/by-nd/4.0/ |
dc.rights.accessrights.none.fl_str_mv |
info:eu-repo/semantics/embargoedAccess |
dc.rights.coar.none.fl_str_mv |
http://purl.org/coar/access_right/c_f1cf |
rights_invalid_str_mv |
Attribution-NoDerivatives 4.0 International http://creativecommons.org/licenses/by-nd/4.0/ http://purl.org/coar/access_right/c_f1cf |
eu_rights_str_mv |
embargoedAccess |
dc.format.extent.none.fl_str_mv |
30 páginas |
dc.format.mimetype.none.fl_str_mv |
application/pdf |
dc.publisher.none.fl_str_mv |
Universidad de los Andes |
dc.publisher.program.none.fl_str_mv |
Ingeniería de Sistemas y Computación |
dc.publisher.faculty.none.fl_str_mv |
Facultad de Ingeniería |
dc.publisher.department.none.fl_str_mv |
Departamento de Ingeniería Sistemas y Computación |
publisher.none.fl_str_mv |
Universidad de los Andes |
institution |
Universidad de los Andes |
bitstream.url.fl_str_mv |
https://repositorio.uniandes.edu.co/bitstreams/4b3a023f-26fe-49bd-a369-9ea5b4fc707f/download https://repositorio.uniandes.edu.co/bitstreams/d8cb46ba-d03d-4d9f-bf4d-ed1b7e305e80/download https://repositorio.uniandes.edu.co/bitstreams/d22db0c4-fec2-4f9b-b5ee-4d9dbca35801/download https://repositorio.uniandes.edu.co/bitstreams/42574416-a3da-45be-989b-90b99a211ae5/download https://repositorio.uniandes.edu.co/bitstreams/8bc2c8b0-e9e7-45b0-951a-806c6747871f/download https://repositorio.uniandes.edu.co/bitstreams/5c8692ab-e7fa-417c-a953-d3fbfb38d871/download https://repositorio.uniandes.edu.co/bitstreams/492b5ff8-c093-4cfe-aa20-cb4bfd629c27/download https://repositorio.uniandes.edu.co/bitstreams/3d753544-2bfe-4e9b-8e86-6ebdf705a0d8/download |
bitstream.checksum.fl_str_mv |
ae9e573a68e7f92501b6913cc846c39f c7b49e194106665d0d3dcce9c89ebb25 b3f45f01ed9fa3aef81f691044633c36 f7d494f61e544413a13e6ba1da2089cd 4761b74fae60451e20b7cb64d14dad63 530d320eb9a3b695b3582e4fc981c68e 9cc9efe252daedbccd74e3bd686c573c f691b001adcacaf334009eddf7448437 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositorio institucional Séneca |
repository.mail.fl_str_mv |
adminrepositorio@uniandes.edu.co |
_version_ |
1812134016067829760 |
spelling |
Manrique Piramanrique, Rubén FranciscoCohen Solano, KevinManrique Piramanrique, Rubén FranciscoFacultad de Ingeniería2024-01-26T20:56:54Z2025-01-222023-12-042024-01-23https://hdl.handle.net/1992/73530instname:Universidad de los Andesreponame:Repositorio Institucional Sénecarepourl:https://repositorio.uniandes.edu.co/En este proyecto se desarrolló una aplicación web que funciona como chatbot interactivo, en la cual se utilizó la técnica de Recuperación Aumentada Generativa para otorgarle acceso a la información de un dominio específico. En el margen del proyecto, se exploraron diferentes técnicas para mejorar el funcionamiento del RAG, tales como ingeniería de prompts y HyDE. Igualmente, se hizo la comparación entre los modelos grandes de lenguaje GPT 3.5 y GPT 4. Esta aplicación fue puesta a prueba con los potenciales usuarios finales, siendo estos tanto estudiantes como profesores del Instituto Departamental de Bellas Artes. Gracias a esto se obtuvieron variedad de resultados que evidencian la eficiencia de ciertas estrategias, así como del nivel de aceptación final de los usuarios.Ingeniero de Sistemas y ComputaciónPregrado30 páginasapplication/pdfspaUniversidad de los AndesIngeniería de Sistemas y ComputaciónFacultad de IngenieríaDepartamento de Ingeniería Sistemas y ComputaciónAttribution-NoDerivatives 4.0 Internationalhttp://creativecommons.org/licenses/by-nd/4.0/info:eu-repo/semantics/embargoedAccesshttp://purl.org/coar/access_right/c_f1cfRecuperación Aumentada Generativa (RAG) para la creación de chatbot de dominio específicoTrabajo de grado - Pregradoinfo:eu-repo/semantics/bachelorThesisinfo:eu-repo/semantics/acceptedVersionhttp://purl.org/coar/resource_type/c_7a1fTexthttp://purl.org/redcol/resource_type/TPHyDEEmbeddingLarge Language Models (LLMs)OpenAIPromptPipelineLangChainChatbotRecuperación Aumentada Generativa (RAG)Bellas ArtesIngeniería de PromptsBase de Datos VectorialDocumentosModeloIngenieríaDeepLearning.AI. (2023, August 9). ChatGPT Prompt Engineering for Developers. https://www.deeplearning.ai/short-courses/DeepLearning.AI. (2023, August 9). Building Systems with the ChatGPT API. https://www.deeplearning.ai/short-courses/Gao, L., Ma, X., Lin, J., Callan, J. (2022). Precise Zero-Shot Dense Retrieval without Relevance Labels. https://arxiv.org/abs/2212.10496.Jiang, Z., Xu, F. F., Araki, J., & Neubig, G. (2020). How can we know what language models know? Transactions of the Association for Computational Linguistics, 8, 423–438. https://doi.org/10.1162/tacl_a_00324.Mao, Y., He, P., Liu, X., Shen, Y., Gao, J., Han, J., & Chen, W. (2021). Generation-Augmented Retrieval for Open-Domain Question Answering. https://arxiv.org/abs/2009.08553.OpenAI Platform. (n.d.). https://platform.openai.com/docs/guides/embeddings/what-are-embeddings.Question answering using embeddings-based search | OpenAI Cookbook. (s. f.). https://cookbook.openai.com/examples/question_answering_using_embeddings.Zhang, Z., Zhang Aston, Li, M., & Smola, A. (2021). AUTOMATIC CHAIN OF THOUGHT PROMPTING IN LARGE LANGUAGE MODELS [Academic Article]. Shanghai Jiao Tong University.202011864PublicationLICENSElicense.txtlicense.txttext/plain; charset=utf-82535https://repositorio.uniandes.edu.co/bitstreams/4b3a023f-26fe-49bd-a369-9ea5b4fc707f/downloadae9e573a68e7f92501b6913cc846c39fMD53ORIGINALRecuperación Aumentada Generativa (RAG).pdfRecuperación Aumentada Generativa (RAG).pdfSe deja privado por un año ante la posible publicación del artículo.application/pdf1492259https://repositorio.uniandes.edu.co/bitstreams/d8cb46ba-d03d-4d9f-bf4d-ed1b7e305e80/downloadc7b49e194106665d0d3dcce9c89ebb25MD55Autorización Tesis_KevinC.pdfAutorización Tesis_KevinC.pdfHIDEapplication/pdf232288https://repositorio.uniandes.edu.co/bitstreams/d22db0c4-fec2-4f9b-b5ee-4d9dbca35801/downloadb3f45f01ed9fa3aef81f691044633c36MD54CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8799https://repositorio.uniandes.edu.co/bitstreams/42574416-a3da-45be-989b-90b99a211ae5/downloadf7d494f61e544413a13e6ba1da2089cdMD56TEXTRecuperación Aumentada Generativa (RAG).pdf.txtRecuperación Aumentada Generativa (RAG).pdf.txtExtracted texttext/plain68654https://repositorio.uniandes.edu.co/bitstreams/8bc2c8b0-e9e7-45b0-951a-806c6747871f/download4761b74fae60451e20b7cb64d14dad63MD57Autorización Tesis_KevinC.pdf.txtAutorización Tesis_KevinC.pdf.txtExtracted texttext/plain1176https://repositorio.uniandes.edu.co/bitstreams/5c8692ab-e7fa-417c-a953-d3fbfb38d871/download530d320eb9a3b695b3582e4fc981c68eMD59THUMBNAILRecuperación Aumentada Generativa (RAG).pdf.jpgRecuperación Aumentada Generativa (RAG).pdf.jpgGenerated Thumbnailimage/jpeg6889https://repositorio.uniandes.edu.co/bitstreams/492b5ff8-c093-4cfe-aa20-cb4bfd629c27/download9cc9efe252daedbccd74e3bd686c573cMD58Autorización Tesis_KevinC.pdf.jpgAutorización Tesis_KevinC.pdf.jpgGenerated Thumbnailimage/jpeg11184https://repositorio.uniandes.edu.co/bitstreams/3d753544-2bfe-4e9b-8e86-6ebdf705a0d8/downloadf691b001adcacaf334009eddf7448437MD5101992/73530oai:repositorio.uniandes.edu.co:1992/735302024-01-29 03:11:54.15http://creativecommons.org/licenses/by-nd/4.0/Attribution-NoDerivatives 4.0 Internationalembargohttps://repositorio.uniandes.edu.coRepositorio institucional Sénecaadminrepositorio@uniandes.edu.coPGgzPjxzdHJvbmc+RGVzY2FyZ28gZGUgUmVzcG9uc2FiaWxpZGFkIC0gTGljZW5jaWEgZGUgQXV0b3JpemFjacOzbjwvc3Ryb25nPjwvaDM+CjxwPjxzdHJvbmc+UG9yIGZhdm9yIGxlZXIgYXRlbnRhbWVudGUgZXN0ZSBkb2N1bWVudG8gcXVlIHBlcm1pdGUgYWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBTw6luZWNhIHJlcHJvZHVjaXIgeSBkaXN0cmlidWlyIGxvcyByZWN1cnNvcyBkZSBpbmZvcm1hY2nDs24gZGVwb3NpdGFkb3MgbWVkaWFudGUgbGEgYXV0b3JpemFjacOzbiBkZSBsb3Mgc2lndWllbnRlcyB0w6lybWlub3M6PC9zdHJvbmc+PC9wPgo8cD5Db25jZWRhIGxhIGxpY2VuY2lhIGRlIGRlcMOzc2l0byBlc3TDoW5kYXIgc2VsZWNjaW9uYW5kbyBsYSBvcGNpw7NuIDxzdHJvbmc+J0FjZXB0YXIgbG9zIHTDqXJtaW5vcyBhbnRlcmlvcm1lbnRlIGRlc2NyaXRvcyc8L3N0cm9uZz4geSBjb250aW51YXIgZWwgcHJvY2VzbyBkZSBlbnbDrW8gbWVkaWFudGUgZWwgYm90w7NuIDxzdHJvbmc+J1NpZ3VpZW50ZScuPC9zdHJvbmc+PC9wPgo8aHI+CjxwPllvLCBlbiBtaSBjYWxpZGFkIGRlIGF1dG9yIGRlbCB0cmFiYWpvIGRlIHRlc2lzLCBtb25vZ3JhZsOtYSBvIHRyYWJham8gZGUgZ3JhZG8sIGhhZ28gZW50cmVnYSBkZWwgZWplbXBsYXIgcmVzcGVjdGl2byB5IGRlIHN1cyBhbmV4b3MgZGUgc2VyIGVsIGNhc28sIGVuIGZvcm1hdG8gZGlnaXRhbCB5L28gZWxlY3Ryw7NuaWNvIHkgYXV0b3Jpem8gYSBsYSBVbml2ZXJzaWRhZCBkZSBsb3MgQW5kZXMgcGFyYSBxdWUgcmVhbGljZSBsYSBwdWJsaWNhY2nDs24gZW4gZWwgU2lzdGVtYSBkZSBCaWJsaW90ZWNhcyBvIGVuIGN1YWxxdWllciBvdHJvIHNpc3RlbWEgbyBiYXNlIGRlIGRhdG9zIHByb3BpbyBvIGFqZW5vIGEgbGEgVW5pdmVyc2lkYWQgeSBwYXJhIHF1ZSBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsYSBMZXkgMjMgZGUgMTk4MiwgTGV5IDQ0IGRlIDE5OTMsIERlY2lzacOzbiBBbmRpbmEgMzUxIGRlIDE5OTMsIERlY3JldG8gNDYwIGRlIDE5OTUgeSBkZW3DoXMgbm9ybWFzIGdlbmVyYWxlcyBzb2JyZSBsYSBtYXRlcmlhLCB1dGlsaWNlIGVuIHRvZGFzIHN1cyBmb3JtYXMsIGxvcyBkZXJlY2hvcyBwYXRyaW1vbmlhbGVzIGRlIHJlcHJvZHVjY2nDs24sIGNvbXVuaWNhY2nDs24gcMO6YmxpY2EsIHRyYW5zZm9ybWFjacOzbiB5IGRpc3RyaWJ1Y2nDs24gKGFscXVpbGVyLCBwcsOpc3RhbW8gcMO6YmxpY28gZSBpbXBvcnRhY2nDs24pIHF1ZSBtZSBjb3JyZXNwb25kZW4gY29tbyBjcmVhZG9yIGRlIGxhIG9icmEgb2JqZXRvIGRlbCBwcmVzZW50ZSBkb2N1bWVudG8uPC9wPgo8cD5MYSBwcmVzZW50ZSBhdXRvcml6YWNpw7NuIHNlIGVtaXRlIGVuIGNhbGlkYWQgZGUgYXV0b3IgZGUgbGEgb2JyYSBvYmpldG8gZGVsIHByZXNlbnRlIGRvY3VtZW50byB5IG5vIGNvcnJlc3BvbmRlIGEgY2VzacOzbiBkZSBkZXJlY2hvcywgc2lubyBhIGxhIGF1dG9yaXphY2nDs24gZGUgdXNvIGFjYWTDqW1pY28gZGUgY29uZm9ybWlkYWQgY29uIGxvIGFudGVyaW9ybWVudGUgc2XDsWFsYWRvLiBMYSBwcmVzZW50ZSBhdXRvcml6YWNpw7NuIHNlIGhhY2UgZXh0ZW5zaXZhIG5vIHNvbG8gYSBsYXMgZmFjdWx0YWRlcyB5IGRlcmVjaG9zIGRlIHVzbyBzb2JyZSBsYSBvYnJhIGVuIGZvcm1hdG8gbyBzb3BvcnRlIG1hdGVyaWFsLCBzaW5vIHRhbWJpw6luIHBhcmEgZm9ybWF0byBlbGVjdHLDs25pY28sIHkgZW4gZ2VuZXJhbCBwYXJhIGN1YWxxdWllciBmb3JtYXRvIGNvbm9jaWRvIG8gcG9yIGNvbm9jZXIuPC9wPgo8cD5FbCBhdXRvciwgbWFuaWZpZXN0YSBxdWUgbGEgb2JyYSBvYmpldG8gZGUgbGEgcHJlc2VudGUgYXV0b3JpemFjacOzbiBlcyBvcmlnaW5hbCB5IGxhIHJlYWxpesOzIHNpbiB2aW9sYXIgbyB1c3VycGFyIGRlcmVjaG9zIGRlIGF1dG9yIGRlIHRlcmNlcm9zLCBwb3IgbG8gdGFudG8sIGxhIG9icmEgZXMgZGUgc3UgZXhjbHVzaXZhIGF1dG9yw61hIHkgdGllbmUgbGEgdGl0dWxhcmlkYWQgc29icmUgbGEgbWlzbWEuPC9wPgo8cD5FbiBjYXNvIGRlIHByZXNlbnRhcnNlIGN1YWxxdWllciByZWNsYW1hY2nDs24gbyBhY2Npw7NuIHBvciBwYXJ0ZSBkZSB1biB0ZXJjZXJvIGVuIGN1YW50byBhIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBzb2JyZSBsYSBvYnJhIGVuIGN1ZXN0acOzbiwgZWwgYXV0b3IgYXN1bWlyw6EgdG9kYSBsYSByZXNwb25zYWJpbGlkYWQsIHkgc2FsZHLDoSBkZSBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcywgcGFyYSB0b2RvcyBsb3MgZWZlY3RvcyBsYSBVbml2ZXJzaWRhZCBhY3TDumEgY29tbyB1biB0ZXJjZXJvIGRlIGJ1ZW5hIGZlLjwvcD4KPHA+U2kgdGllbmUgYWxndW5hIGR1ZGEgc29icmUgbGEgbGljZW5jaWEsIHBvciBmYXZvciwgY29udGFjdGUgY29uIGVsIDxhIGhyZWY9Im1haWx0bzpiaWJsaW90ZWNhQHVuaWFuZGVzLmVkdS5jbyIgdGFyZ2V0PSJfYmxhbmsiPkFkbWluaXN0cmFkb3IgZGVsIFNpc3RlbWEuPC9hPjwvcD4K |