{"id":23970888,"url":"https://github.com/platzi/curso-langchain","last_synced_at":"2025-04-13T18:14:15.902Z","repository":{"id":182393866,"uuid":"651266068","full_name":"platzi/curso-langchain","owner":"platzi","description":"Repositorio del proyecto y ejercicios del Curso de LangChain de Platzi","archived":false,"fork":false,"pushed_at":"2023-07-20T19:03:08.000Z","size":14034,"stargazers_count":20,"open_issues_count":0,"forks_count":20,"subscribers_count":5,"default_branch":"start","last_synced_at":"2025-04-13T18:14:10.001Z","etag":null,"topics":["gpt-3-5-turbo","langchain","langchain-python","llm","openai"],"latest_commit_sha":null,"homepage":"https://platzi.com/cursos/langchain-chatbots/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/platzi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-08T21:53:51.000Z","updated_at":"2025-03-16T10:09:02.000Z","dependencies_parsed_at":"2025-01-07T02:32:41.617Z","dependency_job_id":null,"html_url":"https://github.com/platzi/curso-langchain","commit_stats":null,"previous_names":["platzi/curso-langchain"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/platzi%2Fcurso-langchain","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/platzi%2Fcurso-langchain/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/platzi%2Fcurso-langchain/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/platzi%2Fcurso-langchain/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/platzi","download_url":"https://codeload.github.com/platzi/curso-langchain/tar.gz/refs/heads/start","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248758418,"owners_count":21156957,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gpt-3-5-turbo","langchain","langchain-python","llm","openai"],"created_at":"2025-01-07T02:21:33.614Z","updated_at":"2025-04-13T18:14:15.868Z","avatar_url":"https://github.com/platzi.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/hashira_cactus.png\" width=\"300\" height=\"300\"\u003e\n\u003c/p\u003e\n\n# HASHIRA: Sensei virtual de documentación\n\n## **Descripción**\n\nEl objetivo principal de este proyecto es facilitar el acceso a la información documentada en varios repositorios de GitHub, a través de un chatbot interactivo. Los usuarios pueden hacer preguntas al chatbot, que buscará la respuesta en la documentación extraída.\n\nEl nombre HASHIRA se inspira en la serie de anime \"Demon Slayer\". Los Hashiras son los espadachines más fuertes y experimentados del Cuerpo de Asesinos de Demonios, cada uno especializado en un estilo de lucha. De manera similar, este proyecto aspira a ser un sistema de alto rendimiento y especializado, que proporcione respuestas precisas basadas en la documentación existente.\n\n## **Configuración**\n\nEl funcionamiento del proyecto se puede manipular mediante el archivo **`config.yaml`**. Para utilizar el proyecto desde cero, sigue estos pasos:\n\n1. **Extracción de textos**: Ejecute **`hashira/text_extractor.py`**. Este script exportará a la carpeta **`data`** un archivo jsonl con todos los archivos markdown de las documentaciones indicadas en la variable **`github`** en el archivo **`config.yaml`**. Estos archivos serán limpiados por **`text_extractor.py`** y estarán listos para ser divididos en Documentos de Langchain.\n2. **Recreación de la base de datos de Chroma**: Ajuste la variable **`recreate_chroma_db`** en **`config.yaml`** a **`true`**. Esto indica que se creará una nueva base de datos de vectores Chroma y se almacenará localmente con el nombre \"chroma_docs\".\n3. **Incrustación y almacenamiento de documentos**: Ejecute **`hashira/ai_conversation.py`**. Este script cargará el archivo jsonl creado en el paso 1 (asegúrese de agregar su nombre al archivo **`config.yaml`** en la variable **`jsonl_database_path`**). Luego, recreará la base de datos de Chroma incrustando todos los archivos json en el archivo jsonl creado, dividiéndolos y almacenándolos en la base de datos de vectores de Chroma para crear un índice.\n4. **Uso de la base de datos existente**: Una vez que la base de datos de Chroma ha sido recreada, no es necesario volver a hacerlo. En la configuración, la variable **`recreate_chroma_db`** puede ajustarse a **`false`**, de modo que se utilizará la base de datos de Chroma existente en lugar de crear una nueva que implique volver a incrustar todos los archivos.\n5. **Modo de chat**: Ajuste la variable **`chat_type`** en **`config.yaml`** a **`qa_chat`** para una interacción en modo de preguntas y respuestas, o a **`memory_chat`** para un chat con memoria. En el modo de preguntas y respuestas, el chatbot genera respuestas basándose puramente en la consulta actual sin considerar el historial de la conversación. En el modo de chat con memoria, el chatbot puede recordar partes de la conversación para generar respuestas más contextualizadas.\n6. **Interacción con los documentos**: Al ejecutar **`hashira/conversation_ai.py`**, podrás chatear con todos los documentos obtenidos de Github.\n\n## Instalación de dependencias\n\n### **Instalación con Poetry (recomendada)**\n\nPuede instalar las dependencias y crear un entorno virtual utilizando Poetry con el siguiente comando:\n\n``` shell\npoetry install\n```\n\nLuego, puede ejecutar el proyecto con:\n\n``` shell\npoetry run python hashira/ai_conversation.py\n```\n\n\n### **Instalación con Pip**\n\nComo alternativa, también puede instalar las dependencias utilizando Pip con el siguiente comando:\n\n``` shell\npip install -r requirements.txt\n```\n\nLuego, puede ejecutar el proyecto con:\n\n``` shell\npython hashira/ai_conversation.py\n```\n\n### **Instalación con Conda**\n\nAdemás, puede optar por utilizar Conda para la instalación. Primero, cree un nuevo entorno con Conda:\n\n``` shell\nconda create --name myenv\n```\n\nLuego, active el entorno:\n\n``` shell\nconda activate myenv\n```\n\nA continuación, instale las dependencias:\n\n``` shell\nconda install --file requirements.txt\n```\n\nPor último, ejecute el proyecto con:\n\n``` shell\npython hashira/ai_conversation.py\n```\n\nRecuerde reemplazar \"myenv\" con el nombre que desee para su entorno.\n\n\n## **Contribuciones**\n\nEste proyecto es de código abierto, y apreciamos cualquier contribución. Estamos particularmente interesados en las siguientes mejoras:\n\n- La capacidad de ejecutar el proyecto con otros Modelos de Lenguaje de Máquina (LLMs).\n- Conectividad con otras bases de datos vectoriales como Faiss o Weaviate.\n- Adición de una interfaz de usuario y alojamiento en Hugging Face Hub Spaces.\n- La capacidad de trabajar con todo el código abierto, incluyendo LLMs de Hugging Face Hub.\n\nNo hay pautas específicas para contribuir, sólo te pedimos que nos ayudes a hacer de este proyecto algo más útil y eficiente. ¡Gracias por tu apoyo!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplatzi%2Fcurso-langchain","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplatzi%2Fcurso-langchain","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplatzi%2Fcurso-langchain/lists"}