Skip to main content

Gesso Gemini Middleware

Installation​

  • pnpm install

Configuration​

  • Create a .env file in the root of the project based on .env.example

Environment Variables for Gemini Middleware​

Below are the key environment variables required for the Gemini middleware, along with their details:

GEMINI_API_KEY​

  • Description: The API key required to authenticate with the Gemini API.
  • Required: Yes

GEMINI_MODEL​

  • Description: Specifies the model to use with the Gemini API.
  • Default: gemini-1.5-flash
  • Supported Models:
    • gemini-2.0-flash
    • gemini-2.0-flash-lite-preview-02-05
    • gemini-1.5-flash
    • gemini-1.5-flash-8b
    • gemini-1.5-pro
    • text-embedding-004
  • Details: For more information on available models and their variations, see the Gemini API Models Documentation.

GEMINI_SAFETY_SETTINGS​

  • Description: Configures safety settings for content moderation in the Gemini API.

  • Default: The following JSON configuration:

    [
    {
    "category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
    "threshold": "HARM_BLOCK_THRESHOLD_UNSPECIFIED"
    },
    {
    "category": "HARM_CATEGORY_HATE_SPEECH",
    "threshold": "HARM_BLOCK_THRESHOLD_UNSPECIFIED"
    },
    {
    "category": "HARM_CATEGORY_HARASSMENT",
    "threshold": "HARM_BLOCK_THRESHOLD_UNSPECIFIED"
    },
    {
    "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
    "threshold": "HARM_BLOCK_THRESHOLD_UNSPECIFIED"
    }
    ]
  • Details: For more information on the safety settings, please refer to the Gemini API documentation.

GEMINI_SYSTEM_INSTRUCTION​

  • Description: Overrides the default Gesso schema instructions with your own system instruction. By default, Gesso uses the following schema instructions:

    schemaInstructions: getSchemaInstructions(options?.responseStructure);
    {
    "role": "model",
    "parts": [
    {
    "text": {schemaInstructions}
    }
    ]
    }
  • This can be set in either a string or a JSON object

  • Details: For more information on the system instruction, please refer to the Gemini API documentation.

Usage​

  • pnpm test to run the tests
  • pnpm lint to lint the code