Genera texto con la API de Gemini

La API de Gemini puede generar resultados de texto a partir de varios tipos de entrada, como las siguientes: como texto, imágenes, video y audio. Puedes usar la generación de texto para diversos aplicaciones, como las siguientes:

  • Escritura Creativa
  • Describir o interpretar los activos de medios
  • Finalización de texto
  • Resumen de textos de formato libre
  • Cómo traducir entre idiomas
  • Chatbots
  • Tus propios casos de uso nuevos

En esta guía, se muestra cómo generar texto usando la generateContent y streamGenerateContent y el SDK del servidor que elijas. La atención se centra en la salida de texto de solo texto y texto e imagen. Para obtener más información sobre las instrucciones multimodales con archivos de audio y video, consulta Instrucciones con archivos multimedia.

Antes de comenzar: Configura tu proyecto y clave de API

Antes de llamar a la API de Gemini, debes configurar tu proyecto tu clave de API.

Genera texto a partir de entradas de solo texto

La forma más sencilla de generar texto con la API de Gemini es proporcionar el modelo con una sola entrada de texto, como se muestra en este ejemplo:

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("Write a story about a magic backpack.")
print(response.text)

En este caso, la instrucción ("Escribe una historia sobre una mochila mágica") no incluir ejemplos de resultados, instrucciones del sistema o información de formato. Es sin ejemplos enfoque. En algunos casos de uso, una sola acción o instrucción pocas pueden producir resultados que estén más alineados con las expectativas de los usuarios. En algunos casos, también puedes proporcionar instrucciones del sistema para ayudar al modelo comprender la tarea o seguir pautas específicas.

Genera texto a partir de entradas de imágenes y texto

La API de Gemini admite entradas multimodales que combinan texto con archivos multimedia. En el siguiente ejemplo, se muestra cómo generar texto a partir de entradas de imagen y texto:

import PIL.Image

model = genai.GenerativeModel("gemini-1.5-flash")
organ = PIL.Image.open(media / "organ.jpg")
response = model.generate_content(["Tell me about this instrument", organ])
print(response.text)

Al igual que con las instrucciones de solo texto, las instrucciones multimodales pueden implicar varios enfoques y perfeccionamientos. Según el resultado de este ejemplo, es posible que quieras agrega pasos a la instrucción o crea instrucciones más específicas. Para obtener más información, Consulta Estrategias de solicitud de archivos.

Genera un flujo de texto

De forma predeterminada, el modelo devuelve una respuesta después de completar todo el texto. de generación de demanda. Puedes lograr interacciones más rápidas si no esperas que resultado completo y, en su lugar, usar la transmisión para manejar resultados parciales.

En el siguiente ejemplo, se muestra cómo implementar la transmisión usando el streamGenerateContent para Generar texto a partir de una instrucción de entrada de solo texto.

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("Write a story about a magic backpack.", stream=True)
for chunk in response:
    print(chunk.text)
    print("_" * 80)

Cómo crear un chat interactivo

Puedes usar la API de Gemini para crear experiencias de chat interactivas para tus usuarios. Usar la función de chat de la API te permite recopilar varias rondas de preguntas. y respuestas, lo que les permite a los usuarios avanzar progresivamente hacia las respuestas u obtener ayuda con problemas de varias partes. Esta función es ideal para aplicaciones que requieren comunicación continua, como chatbots, tutores interactivos o atención al cliente asistentes.

En el siguiente ejemplo de código, se muestra una implementación básica de chat:

model = genai.GenerativeModel("gemini-1.5-flash")
chat = model.start_chat(
    history=[
        {"role": "user", "parts": "Hello"},
        {"role": "model", "parts": "Great to meet you. What would you like to know?"},
    ]
)
response = chat.send_message("I have 2 dogs in my house.")
print(response.text)
response = chat.send_message("How many paws are in my house?")
print(response.text)

Configura la generación de texto

Cada instrucción que envías al modelo incluye parámetros que y controlan cómo el modelo genera respuestas. Puedes usar GenerationConfig a configurar estos parámetros. Si no configuras los parámetros, el modelo usa opciones predeterminadas, que pueden variar según el modelo.

En el siguiente ejemplo, se muestra cómo configurar varias de las opciones disponibles.

model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content(
    "Tell me a story about a magic backpack.",
    generation_config=genai.types.GenerationConfig(
        # Only one candidate for now.
        candidate_count=1,
        stop_sequences=["x"],
        max_output_tokens=20,
        temperature=1.0,
    ),
)

print(response.text)

candidateCount especifica la cantidad de respuestas generadas que se mostrarán. Actualmente, este valor solo se puede establecer en 1. Si no la estableces, el valor predeterminado será 1.

stopSequences especifica el conjunto de secuencias de caracteres (hasta 5) que se aplicarán detener la generación de resultados. Si se especifica, la API se detendrá en la primera aparición de un elemento stop_sequence. La secuencia de detención no se incluirá como parte del respuesta.

maxOutputTokens establece la cantidad máxima de tokens que se deben incluir en un candidato.

temperature controla la aleatorización de la salida. Usa valores más altos para obtener más respuestas creativas y valores más bajos para respuestas más deterministas. Valores puede variar entre [0.0, 2.0].

También puedes configurar llamadas individuales a generateContent:

response = model.generate_content(
    'Write a story about a magic backpack.',
    generation_config = genai.GenerationConfig(
        max_output_tokens=1000,
        temperature=0.1,
    )
)

Cualquier valor configurado en los valores de anulación de la llamada individual en el constructor del modelo

¿Qué sigue?

En esta guía, se muestra cómo usar generateContent y streamGenerateContent para generar salidas de texto a partir de entradas de solo texto y de imagen y texto. Para obtener más información sobre la generación de texto con la API de Gemini, consulta los siguientes recursos:

  • Instrucciones con archivos multimedia: La La API de Gemini admite instrucciones con datos de texto, imagen, audio y video. conocida como instrucción multimodal.
  • Instrucciones del sistema: Sistema instrucciones te permiten guiar el comportamiento del modelo según tu necesidades y casos de uso.
  • Orientación sobre seguridad: A veces, la IA generativa los modelos generan resultados inesperados, como resultados inexactos ofensiva o sesgada. El procesamiento posterior y la evaluación humana son esenciales limitar el riesgo de daños derivados de dichos productos.