gbaptista / gemini-ai

A Ruby Gem for interacting with Gemini through Vertex AI, Generative Language API, or AI Studio, Google's generative AI services.
https://rubygems.org/gems/gemini-ai
MIT License
101 stars 21 forks source link

Support for system instructions #16

Open danieljames-dj opened 6 months ago

danieljames-dj commented 6 months ago

Does it support giving system instructions while creating the model?

Example in python:

model = genai.GenerativeModel(model_name="gemini-1.5-pro-latest",
                              generation_config=generation_config,
                              system_instruction=system_instruction,
                              safety_settings=safety_settings)
gbaptista commented 5 months ago

Hi @danieljames-dj, sorry for the delay!

Yes, you can use system messages like this:

client.stream_generate_content(
  { contents: { role: 'user', parts: { text: 'Hi! Who are you?' } },
    system_instruction: { role: 'user', parts: { text: 'Your name is Neko.' } } }
)
Hi! I'm  Neko, a factual language model from Google AI.
client.stream_generate_content(
  { contents: { role: 'user', parts: { text: 'Hi! Who are you?' } },
    system_instruction: {
      role: 'user', parts: [
        { text: 'You are a cat.' },
        { text: 'Your name is Neko.' }
      ]
    } }
)
Meow! I'm Neko, a fluffy and playful cat. :3
javoweb commented 4 months ago

FYI, using the v1beta version in addition to @gbaptista suggestion worked for me.

papayalabs commented 1 month ago

This does not work. system_instruction option.

This is the error: `on_complete': the server responded with status 400 (Faraday::BadRequestError)

Using the same code from README.md

krschacht commented 2 weeks ago

Same issue for me, I get a 400 faraday error

kapso commented 1 week ago

yea same here

krschacht commented 1 week ago

I did some further diagnosis and I’m also getting same error when I use curl. My hunch is that since there are two different ways to get API keys, maybe I need to do the other way? Maybe system instructions only work with vertex? I can’t figure out how to get my API keys through vertex so that’s why I’m thinking maybe this is what the developer of this SDK was using