Uso de PR-Agent utilizando el motor de IA de Sakura
programación
Published: 2025-09-24

Vamos a explicar cómo construir un PR-Agent utilizando el “motor de IA de Sakura” proporcionado por Sakura Internet. No hay opción de no utilizar esto como parte del desarrollo si trabajas en Sakura Internet.

¿Qué es el motor de IA de Sakura?

El “motor de IA de Sakura”, que es la plataforma de IA generativa de Sakura, es un servicio que permite utilizar modelos de IA generativa ofrecidos por Sakura Internet.

El "motor de IA de Sakura" es un servicio de plataforma que permite usar varios modelos de IA generativa con un modelo de pago por uso. 
Dado que todos los modelos LLM son alojados por Sakura Internet, la comunicación se limita a los datos entre el cliente y Sakura Internet. 
Los datos utilizados para funciones de autocompletado de chat no se utilizan para el entrenamiento de modelos LLM,
lo que lo convierte en un servicio con alta seguridad de datos.

Por lo tanto, al ser proporcionado por una empresa nacional, se destaca el hecho de que los datos no se envían al extranjero, lo que permite un uso seguro.

¿Qué es un PR-Agent?

El PR-Agent es una herramienta que revisa automáticamente las solicitudes de extracción (pull requests) de GitHub utilizando modelos de lenguaje grandes (LLM). PR-Agent puede comprender los cambios en el código y señalar problemas potenciales o áreas de mejora. Esto permite a los desarrolladores reducir la carga de la revisión de código y centrarse en mejorar la calidad.

Usar PR-Agent con el motor de IA de Sakura

Sigue el manual para obtener el token de cuenta del motor de IA de Sakura.

Configurar el TOKEN en el repositorio que usará PR-Agent

Ve a la configuración de la repositorio de GitHub en Settings > Secrets and variables > Actions y agrega un secreto con el nombre SAKURA_AI_ENGINE_API_KEY.

secret

secret token

Configuración de GitHub Actions

PR-Agent utiliza GitHub Actions para funcionar. Crea un archivo YAML en el directorio .github/workflows del repositorio como se muestra a continuación.
En esta ocasión, utilizaremos el modelo Qwen3-Coder-480B-A35B-Instruct-FP8.

name: PR-Agent
on:
  pull_request:
    types: [opened, reopened, synchronize, ready_for_review]
  issue_comment:
    types: [created, edited]
  workflow_dispatch:

permissions:
  issues: write
  pull-requests: write
  contents: write

jobs:
  pr_agent_job:
    runs-on: ubuntu-latest
    name: Ejecutar el agente PR en cada solicitud de extracción
    steps:
      - name: Paso de acción PR Agent
        id: pragent
        uses: qodo-ai/pr-agent@main
        env:
          OPENAI_KEY: ${{ secrets.SAKURA_AI_ENGINE_API_KEY }}
          OPENAI__API_BASE: https://api.ai.sakura.ad.jp/v1
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          github_action_config.auto_review: "true"
          github_action_config.auto_describe: "true"
          github_action_config.auto_improve: "true"
          config.model: "openai/Qwen3-Coder-480B-A35B-Instruct-FP8"
          config.custom_model_max_tokens: "100000"
          config.fallback_models: '[ "openai/Qwen3-Coder-480B-A35B-Instruct-FP8" ]'
          pr_reviewer.extra_instructions: >-
            Por favor, responde en español.            
          pr_description.extra_instructions: >-
            Por favor, responde en español.            
          pr_code_suggestions.extra_instructions: >-
            Por favor, responde en español.            
          pr_code_suggestions.num_code_suggestions: "2"

Deberás incluir el prefijo “openai/” en el nombre del modelo, de lo contrario, el PR-Agent no lo reconocerá.

Probar en acción

Cuando se activa el GitHub Actions de PR-Agent, se agregan automáticamente comentarios de revisión a la solicitud de extracción. Así que, para probarlo, crearemos un archivo main.go que podría ser objetado y generaremos una PR.

package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
)

func main() {
	http.HandleFunc("/", handler)
	http.ListenAndServe(":8080", nil)
}

func handler(w http.ResponseWriter, r *http.Request) {
	name := r.URL.Query().Get("name")
	if name == "" {
		name = "World"
	}
	body, err := ioutil.ReadAll(r.Body)
	if err != nil {
		http.Error(w, "No se puede leer el cuerpo", http.StatusBadRequest)
		return
	}
	r.Body.Close()

	fmt.Fprintf(w, "¡Hola, %s!", name)
	fmt.Fprintf(w, "\nUsted envió: %s", string(body))
}

func calculate(x int, y int) int {
	result := x + y
	return result
}

func processData(data []string) {
	for _, item := range data {
		fmt.Println(item)
	}
}

Al crear la PR, se ejecutarán las CI de PR-Agent.

pr-agent-ci

Después de un tiempo, se agregarán comentarios de Descripción y Revisión a la PR.

description

review

Resumen

  • Repositorio de prueba
  • Se pudo automatizar la revisión de código con PR-Agent + el motor de IA de Sakura.
  • El motor de IA de Sakura es una plataforma de IA generativa nacional con alta seguridad de datos.
  • Es seguro porque los datos no se envían al extranjero, a diferencia del uso de la API de OpenAI (psicológicamente también).