Skip to main content

Transferencia directa de parámetros de aplicación personalizada

Pase parámetros personalizados, principalmente a plugins personalizados y nodos personalizados, al llamar a la Aplicación de Agente y la Aplicación de Flujo de Trabajo de Alibaba Cloud Model Studio (que reemplazan a las aplicaciones de orquestación de agentes).

Obtenga una clave API y exporte la clave API como variable de entorno. Si utiliza un SDK para realizar las llamadas, instale el SDK de DashScope.

Parámetros de plugin personalizado

Este artículo utiliza la herramienta de consulta de convenciones de dormitorio para demostrar cómo pasar parámetros a un plugin personalizado mediante una API.
Los parámetros para plugins personalizados se pasan a través de una Aplicación de Agente asociada o del nodo de plugin de una Aplicación de Flujo de Trabajo.
El siguiente ejemplo muestra cómo pasar parámetros de plugin personalizado para una Aplicación de Agente.

Uso

Paso 1: Crear un plugin personalizado

Si ya ha creado una herramienta de plugin o importado un plugin, omita este paso.
  1. Crear un plugin personalizado: Vaya a la página de Plugins en la consola de Model Studio y haga clic en Add Custom Plug-in. Ingrese la información del plugin. Si se requiere autenticación, active el interruptor Habilitar Autenticación y configure los ajustes.
    Descripción de ejemplo del plugin: Consulta convenciones de dormitorio y busca entradas específicas por índice numérico.
    URL de ejemplo del plugin: https://domitorgreement-plugin-example-icohrkdjxy.cn-beijing.fcapp.run
    imagen
    Nota: La Descripción del Plug-in resume brevemente el propósito del plugin. Esto ayuda al modelo grande a decidir si debe llamar al plugin para una tarea determinada. Descríbalo en lenguaje natural.
  2. Crear una herramienta: Complete la información de la herramienta y configure los parámetros de entrada y salida. Nota:
    1. La Descripción de la Herramienta ayuda al modelo grande a comprender mejor las funciones y casos de uso de la herramienta. Utilice lenguaje natural y proporcione ejemplos si es posible.
    2. Un Nombre de Parámetro descriptivo ayuda al modelo grande a comprender la información que representa.
    3. La Descripción del Parámetro explica la función del parámetro de entrada. Debe ser concisa y precisa para ayudar al modelo grande a determinar el valor correcto a utilizar.
    4. Usted debe seleccionar Business Pass-through para el Passing Method del parámetro de entrada.
    En este ejemplo, el índice de contenido de la convención de dormitorio, article_index, se establece como un parámetro de transferencia directa.
    imagen
  3. Haga clic en Test Tool. Después de que la prueba sea exitosa, Publique el plugin.

Paso 2: Asociar un plugin con un agente

Solo puede asociar plugins con Aplicaciones de Agente que se encuentren en el mismo espacio de trabajo.
  1. En la tarjeta de un plugin publicado, haga clic en Add to Agent y seleccione una aplicación de agente.
  2. Alternativamente, haga clic en + Plugin dentro de una aplicación para asociar un plugin personalizado.
  3. Finalmente, Publique la aplicación.

Paso 3: Llamada a la API

  • Cuando no se requiere autenticación: Para llamar a un plugin personalizado a través de una API, utilice el parámetro user_defined_params de biz_params para pasar la información del plugin personalizado, reemplace your_plugin_code con el ID real del plugin y pase los pares clave-valor de los parámetros de entrada configurados en el plugin.
    Puede encontrar el ID del plugin en la tarjeta del plugin.
    En este ejemplo, pasar un valor de 2 al parámetro article_index consulta el contenido de la segunda convención de dormitorio y devuelve el resultado correcto.
    • Python
    • Java
    • HTTP
    Solicitud de ejemplo
    import os
    import dashscope
    # Se requiere dashscope 2.0.1 o posterior.
    from dashscope.v2 import DashScopeError
    
    # La siguiente configuración corresponde a la región de Singapur. El valor de region varía según la región.
    client = dashscope.Client(
            # Si la variable de entorno no está configurada, puede usar su API Key de Model Studio sustituyendo la siguiente línea por: api_key="sk-xxx". Se recomienda usar una variable de entorno en producción para evitar la filtración de su API Key.
            api_key=os.getenv("DASHSCOPE_API_KEY"),
            region="ap-southeast-1")
    biz_params = {
        # Pase los parámetros de entrada del plugin personalizado de la aplicación de agente. Sustituya `your_plugin_code` por el ID de su plugin.
        "user_defined_params": {
            "your_plugin_code": {
                "article_index": 2}}}
    try:
        response = client.apps.completions.create(
                app_id='YOUR_APP_ID',
                prompt='Dormitory convention content',
                biz_params=biz_params)
        print('%s\n' % (response.text))  # Procesa y muestra únicamente el texto.
        # print('%s\n' % (response.usage))
    except DashScopeError as e:
        print(f'request_id={e.request_id}')
        print(f'code={e.code}')
        print(f'message={e.message}')
        print(f'For more information, see: https://www.alibabacloud.com/help/en/model-studio/error-code')
    
    Respuesta de ejemplo
    The second article of the dormitory convention is as follows:
    
    "Roommates must help, care for, and learn from each other to achieve mutual improvement. They must be tolerant, forgiving, respectful, and sincere."
    
    This suggests that roommates should foster a positive living and learning environment by supporting and helping each other, while also learning to understand and respect others. If you want to learn about other articles of the convention, just ask!
    
  • Cuando se requiere autenticación: Este escenario describe cómo llamar a un plugin personalizado que tiene habilitada la Autenticación y está configurado con Autenticación a Nivel de Usuario.
    Puede encontrar el ID del plugin en la tarjeta del plugin.
    • Utilice user_defined_params en el campo biz_params para pasar información del plugin personalizado. Reemplace your_plugin_code con su ID de plugin y proporcione los parámetros de entrada como pares clave-valor.
    • Utilice user_defined_tokens en el campo biz_params para pasar credenciales de autenticación. Reemplace your_plugin_code con su ID de plugin y establezca el valor user_token en su token de autenticación, como una clave API de DashScope.
    • Después de una autenticación exitosa, el servicio consulta el elemento especificado basándose en el parámetro de índice proporcionado y devuelve el resultado correcto.
    En este ejemplo, el parámetro article_index se establece en 2, y el valor de user_token, YOUR_TOKEN, se reemplaza con la DASHSCOPE_API_KEY real. Después de que la autenticación sea exitosa, se consulta el contenido de la segunda regla del dormitorio y se devuelve el resultado correcto.
    • Python
    • Java
    • HTTP
    Ejemplo de solicitud
    import os
    import dashscope
    # Se requiere dashscope 2.0.1 o posterior.
    from dashscope.v2 import DashScopeError
    
    # La siguiente configuración corresponde a la región de Singapur. El valor de region varía según la región.
    client = dashscope.Client(
                # Si la variable de entorno no está configurada, puede usar una API Key de DashScope sustituyendo la siguiente línea por: api_key="sk-xxx".
                # No se recomienda codificar la API Key directamente en un entorno de producción, para reducir el riesgo de filtración de la clave.
                api_key=os.getenv("DASHSCOPE_API_KEY"),
                region="ap-southeast-1")
    biz_params = {
        # Pase las credenciales de autenticación del plugin personalizado de la aplicación de agente.
        # Sustituya your_plugin_code por el ID de su plugin y YOUR_TOKEN por su token de autenticación, por ejemplo una API Key.
        "user_defined_params": {
            "your_plugin_code": {
                "article_index": 2}},
        "user_defined_tokens": {
            "your_plugin_code": {
                "user_token": "YOUR_TOKEN"}}}
    try:
        response = client.apps.completions.create(
                    app_id='YOUR_APP_ID',
                    prompt='Dormitory convention content',
                    biz_params=biz_params)
        print('%s\n' % (response.text))  # Procesa y muestra únicamente el texto.
        # print('%s\n' % (response.usage))
    except DashScopeError as e:
        print(f'request_id={e.request_id}')
        print(f'code={e.code}')
        print(f'message={e.message}')
        print(f'For more information, refer to: https://www.alibabacloud.com/help/en/model-studio/error-code')
    
    Ejemplo de respuesta
    The second article of the dormitory convention is as follows:
    
    Roommates must help, care for, and learn from each other to achieve mutual improvement. They must be tolerant, forgiving, respectful, and sincere.
    
    If you need to know about other articles of the convention, please let me know.
    

Pasar parámetros de nodo personalizados

Este tema utiliza el ejemplo de Consulta de divisiones administrativas por nombre de ciudad para demostrar cómo pasar parámetros de nodo personalizados a una aplicación mediante una llamada a la API.
Los parámetros de nodo personalizados para una aplicación se pasan a través del nodo de inicio de una Aplicación de Flujo de Trabajo.
El siguiente ejemplo muestra cómo pasar parámetros personalizados al nodo de inicio en una Aplicación de Flujo de Trabajo.

Uso

Paso 1: Configurar parámetros de nodo personalizados

Vaya a la página Mis Aplicaciones en la consola de Model Studio. Seleccione una Workflow Application y defina parámetros personalizados para su start node. Para este ejemplo, cree una variable String llamada city. Luego, inserte las variables city y query en el prompt y Publique la aplicación.

Paso 2: Realizar una llamada a la API

Cuando realice la llamada a la API, pase el valor city en el campo biz_params y el valor query en el campo prompt.
  • Python
  • Java
  • HTTP
ejemplo de solicitud
import os
import dashscope
from dashscope.v2 import DashScopeError

# La siguiente configuración corresponde a la región de Singapur. El valor de region varía según la región.
client = dashscope.Client(
    # Si no se ha configurado la variable de entorno, sustituya la siguiente línea por su API Key de Model Studio: api_key = "sk-xxx".
    # Se recomienda no codificar la API Key directamente en el código en un entorno de producción, para reducir el riesgo de filtración de la clave.
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    region="ap-southeast-1")
# Pase parámetros personalizados para una aplicación de flujo de trabajo.
biz_params = {"city": "Hangzhou"}
try:
    response = client.apps.completions.create(
        app_id='YOUR_APP_ID',  # Sustituya por el ID real de su aplicación.
        prompt='Query the administrative divisions of this city',
        biz_params=biz_params  # Pase los parámetros de negocio.
    )
    print(f'{response.text}')  # Procesa y muestra únicamente el texto.
except DashScopeError as e:
    print(f'request_id={e.request_id}')
    print(f'code={e.code}')
    print(f'message={e.message}')
    print(f'For more information, see: https://www.alibabacloud.com/help/en/model-studio/error-code')
ejemplo de respuesta
Hangzhou, as the capital city of Zhejiang Province, has the following 10 municipal districts: Shangcheng, Gongshu, Xihu, Binjiang, Xiaoshan, Yuhang, Linping, Qiantang, Fuyang, and Lin'an. Each district has unique characteristics and development priorities.

- Shangcheng District: Located in the center of Hangzhou, it is one of the city's political, economic, and cultural centers.
- Gongshu District: Characterized by its canal culture, it hosts numerous historical and cultural heritage sites.
- Xihu District: Home to the famous West Lake Scenic Area, it is a major tourist destination.
- Binjiang District: A hub for high-tech industries, where well-known companies like Alibaba are located.
- Xiaoshan District: An administrative district in the southeast that has experienced rapid economic growth, especially in the manufacturing sector.
- Yuhang District: Has developed rapidly in recent years, particularly in the internet economy sector. (Note: Alibaba's headquarters is actually in Binjiang District).
- Linping District: A newly established district aimed at promoting comprehensive economic and social development in the area.
- Qiantang District: Also a result of recent administrative restructuring, it emphasizes the combination of innovative development and ecological protection.
- Fuyang District: Located to the southwest of Hangzhou, it is known for its rich natural landscapes and long history and culture.
- Lin'an District: Situated in the west of Hangzhou, it is famous for its excellent ecological environment and profound cultural heritage.

Please note that specific city planning may change over time. Refer to the latest official information.

Documentación relacionada

Plugin personalizado: Aprenda a crear un plugin personalizado. Invocar una aplicación de agente, Invocar una aplicación de flujo de trabajo: Aprenda a invocar aplicaciones y explore más casos de uso. API de invocación de aplicaciones: Consulte la lista completa de parámetros y ejemplos de invocación.