AICodeBot es un asistente de codificación basado en terminal diseñado para facilitarle la vida a la hora de codificar. Piense en ello como su versión AI de un programador de pares. Realice revisiones de código, cree mensajes de confirmación útiles, depure problemas y le ayude a pensar en la creación de nuevas funciones. Un miembro del equipo que acelera el ritmo de desarrollo y le ayuda a escribir mejor código.
Hemos planeado crear múltiples interfaces diferentes para interactuar con AICodeBot. Para empezar, es una herramienta de línea de comandos que puedes instalar y ejecutar en tu terminal, y una acción de GitHub para revisiones de código.
Estado: este proyecto se creó antes de que los asistentes de codificación AI fueran geniales. ? Como tal, gran parte de la funcionalidad se ha replicado en varios IDE. Donde brilla AICodeBot es a) está en la terminal, no en la GUI, yb) se puede usar en procesos como acciones de GitHub.
Estamos usando AICodeBot para construir AICodeBot, y está en espiral ascendente todo el tiempo. Estamos buscando contribuyentes que nos ayuden a construirlo. Consulte CONTRIBUCIÓN para obtener más información.
Tarea | Estado |
---|---|
Generando mensajes de confirmación de calidad | ✅ |
Pensar en tareas como programador en pareja | ✅ |
Codificar con una pequeña cantidad de archivos | ✅ |
Depuración | ✅ |
Haciendo revisiones de código | ✅ |
Explicando el código | ✅ |
Pruebas de escritura | ✅ |
Integración con GitHub | ✅ |
Modificar archivos locales | Primeras etapas |
Buscando respuestas en Internet | En curso |
Leer documentación de la biblioteca | Primeras etapas |
Codificar con una gran cantidad de archivos | A medida que los LM obtienen límites de tokens mayores |
Escribir código de nivel de desarrollador senior | Eventualmente |
Refactorizadores principales | Eventualmente |
Crea aplicaciones completas | Eventualmente |
Reemplazar desarrolladores | No |
aicodebot sidekick
Tu asistente de codificación impulsado por IA. Está diseñado para ayudarle con sus tareas de codificación brindándole sugerencias y soluciones contextuales. Piense en ChatGPT con la capacidad de leer el repositorio local para conocer el contexto.
De forma predeterminada, pasará un directorio de archivos del directorio de trabajo actual y también puede pasar una lista de archivos para usar como contexto para la tarea en la que está trabajando. Por ejemplo:
aicodebot sidekick file1.py file2.py
En este ejemplo, el compañero leerá el contenido de file1.py y file2.py y los utilizará para proporcionar respuestas contextuales.
Consejos profesionales:
Esta característica se encuentra en sus primeras fases en este momento, pero ya es útil. Agregaremos soporte para herramientas que el compañero puede usar, incluida la integración de GitHub, la ingesta de conocimientos de dominio específicos del repositorio, la escritura de archivos locales y más. Por ahora, sólo lee archivos y ofrece sugerencias.
aicodebot commit
mejora el proceso de confirmación de git. Ejecutará una confirmación previa para que usted pueda verificar la sintaxis y luego generará un mensaje de confirmación en función de los cambios que haya realizado. Con aproximadamente el mismo esfuerzo que escribir "corregir error" en el mensaje de confirmación, obtendrá un mensaje de confirmación de alta calidad que describe detalladamente el cambio.
aicodebot review
ejecutará una revisión de código en su código y sugerirá mejoras. De forma predeterminada, observará los cambios [no] realizados y también puede proporcionar un hash de confirmación específico para revisar. Su objetivo es sugerir cómo mejorar el código y hemos descubierto que a menudo nos enseña cosas nuevas sobre nuestro código y nos convierte en mejores programadores. Es una excelente manera de conseguir un segundo par de ojos de robot en su código.
aicodebot debug $command
ejecutará el comando $ y capturará la salida del registro. Pasará el mensaje de error, el seguimiento de la pila, la salida del comando, etc. a la IA y responderá con algunas sugerencias sobre cómo solucionarlo.
Para instalar AICodeBot, ejecute:
pip install aicodebot
Y luego, ejecute aicodebot configure
para comenzar.
Usage: aicodebot [OPTIONS] COMMAND [ARGS]...
Options:
-V, --version Show the version and exit.
-h, --help Show this message and exit.
-d, --debug Enable langchain debug output
Commands:
alignment A message from AICodeBot about AI Alignment ❤ + ?.
commit Generate a commit message based on your changes.
configure Create or update the configuration file
debug Run a command and debug the output.
review Do a code review, with [un]staged changes, or a...
sidekick Coding help from your AI sidekick
AICodeBot admite múltiples modelos de lenguajes grandes, incluidos Claude 3.x de Anthropic y GPT-3/4x de OpenAI. Las solicitudes de extracción para Gemini u Ollama son bienvenidas, pero creemos que estos dos funcionan.
La primera vez que ejecute AICodeBot, se le pedirá que ingrese sus claves API
¿Qué tal las revisiones automáticas de código en cada confirmación? Puede ejecutar AICodeBot como una acción de GitHub en su repositorio. Consulte la acción AICodeBot GitHub para revisiones de código. Examinará cada solicitud de confirmación y extracción y luego:
aicodebot debug $command
pip install aicodebot
aicodebot alignment
. La tecnología en sí es amoral; simplemente imbuye los valores de las personas que lo crean. Creemos que la IA debe integrarse de manera que se alinee con la humanidad, y estamos creando AICodeBot para ayudarnos a lograr precisamente eso. Estamos construyendo desde un espacio centrado en el corazón y contribuyendo a la intersección saludable de la IA y la humanidad.
aicodebot
es una herramienta para desarrolladores, no un reemplazo para ellos. No reemplazará su trabajo, pero lo hará más fácil y divertido. No se apoderará del mundo, pero nos ayudará a construir uno mejor. Consulte la sección Alineación a continuación para obtener más información.
Tampoco es una herramienta de "construir un sitio para mí en 5 minutos" que requiere un mensaje bien elaborado y crea una base para usted. Hay otras herramientas para eso. No es una plataforma sin código. En cambio, AICodeBot está diseñado para funcionar con bases de código existentes y el nivel de compromiso de git. Está diseñado para multiplicar la eficacia de ingenieros capaces.
Para especificar un modelo diferente, puede configurar language_model
en su archivo $HOME/.aicodebot.yaml
. Por ejemplo:
openai_api_key : sk-*****
language_model : gpt-3.5-turbo
personality : Stewie
version : 1.3
En modelos de IA como el GPT-4 de OpenAI, un "token" es un fragmento de texto, tan corto como un carácter o tan largo como una palabra. El total de tokens en una llamada API, incluidas la entrada y la salida, afecta el costo, el tiempo y si la llamada funciona según el límite máximo.
Cada modelo tiene un límite máximo de tokens. Por ejemplo, GPT-3.5 tiene un límite de 4096 tokens y GPT-4 tiene un límite de tokens de 8192 tokens. Si una conversación excede este límite, deberás reducir tu texto hasta que quepa.
Al usar comandos como el comando Sidekick en AICodeBot, que le permite pasar archivos para contexto, es importante administrar sus tokens de manera efectiva. Debido a los límites de tokens, no es posible cargar todo el código base. En su lugar, sólo debes cargar los archivos específicos que sean relevantes para la tarea en la que estás trabajando. Esto garantiza que el modelo de IA pueda procesar su solicitud de manera eficiente y brindar las sugerencias más relevantes para su tarea actual.
¿Necesita una ventana de contexto más grande para su tarea? ¿Se encuentra con límites de tokens y recibe un mensaje como este?
The context is too large (21414) for any of the models supported by your API key. ?
Hay un par de cosas que puedes hacer:
¡Nos encantaría tu ayuda! Si está interesado en contribuir, aquí le explicamos cómo empezar. Consulte CONTRIBUCIÓN para obtener más detalles.
Se supone que tiene cambios en el directorio de trabajo actual que ya están agregados.
docker build -t aicodebot .
docker run -v ~ /.aicodebot.yaml:/home/user/.aicodebot.yaml -v .:/app aicodebot commit -y