Skip to main content

Command Palette

Search for a command to run...

OPENCODE + OCI GENERATIVE AI

Updated
•3 min read•View as Markdown
OPENCODE + OCI GENERATIVE AI

É possível utilizar vários modelos LLM através da Oracle Cloud, modelos bem interessantes por sinal, segue alguns deles:

openai.gpt-oss-120b
openai.gpt-oss-20b
meta.llama-4-maverick-17b-128e-instruct-fp8
meta.llama-4-scout-17b-16e-instruct
meta.llama-3.3-70b-instruct
xai.grok-4.7
xai.grok-4.6
xai.grok-4.3
xai.grok-4.20-reasoning
xai.grok-4.20-non-reasoning
xai.grok-4.20-multi-agent

E se pudéssemos utilizar esses modelos no Claude Code?

No Claude Code não sei como podemos utilizar, mas no OpenCode eu sei.

Para quem ainda não conhece, o OpenCode pertence à mesma categoria de ferramentas como Claude Code, Codex e outros agentes de programação. Ele não limita o usuário aos modelos de um único provedor. Assim, é possível escolher e alternar entre diferentes LLMs.

Aí que a OCI Generative AI entra; anteriormente listei os modelos que estão disponíveis sob demanda na OCI e a parte interessante é que podemos fazer a integração com o OpenCode e esses modelos automaticamente estarão disponíveis no OpenCode, onde poderemos realizar as atividades necessárias. Mas antes, precisamos realizar algumas configurações de permissões, geração de chaves e habilitar a região de Chicago no tenancy, pois é lá que está a maioria dos modelos sob demanda da OCI.

Primeiro, habilite a região de Chicago no seu OCI:

Posteriormente, vamos até:

Criei um compartimento chamado LLM; sugiro criar um compartimento próprio para poder limitar melhor as policies lá na frente.

A criação da API KEY é next, next e pronto; pode deixar tudo como padrão.

Copie seu OCID e a chave da sua API‑key.
OCID começa com ocid1.generativeaiapikey.oc1.us-chicago-1.....
E a chave começa com sk-...........

Agora vamos ao Project e criar um projeto chamado OPENCODE; aqui pode ser tudo padrão, next, next e pronto.

Calma, falta pouco; agora vamos para Policies.

Lembre‑se do OCID da sua private key; agora que vamos usar, é o OCID e não o keyId.

Prefixo dela: [ocid1.generativeaiapikey.oc1.us](http://ocid1.generativeaiapikey.oc1.us)-chicago-1.....
E seu compartment ID: ocid1.compartment.oc1..aa....

Vamos criar a policy no compartimento root.

Regra 1:

allow any-user to manage generative-ai-response in compartment id ocid1.compartment.oc1.XXXXXXXXXXXXXXXXXXXXXXXX where ALL {request.principal.type='generativeaiapikey', request.principal.id='ocid1.generativeaiapikey.oc1.us-chicago-1.XXXXXXXXXXXXXXXXXXXXXXXXXX'}

Regra 2:

allow any-user to use generative-ai-chat in compartment id ocid1.compartment.oc1..XXXXXXXXXXXXXXXXXXXXXXXX where ALL {request.principal.type='generativeaiapikey', request.principal.id='ocid1.generativeaiapikey.oc1.us-chicago-1.XXXXXXXXXXXXXXXXXXXXXXXX'}

Só relembrando, API Keys e Project foram criados no compartimento LLM e a Policy no root.

Esse procedimento vale tanto para o OpenCode CLI quanto para o Desktop.

No meu caso estou utilizando macOS, então baixe a versão no site:

https://opencode.ai/download

Depois de instalado, entre no seguinte diretório:

/Users/seu_user/.config/opencode

E aí você vai criar 2 arquivos:

opencode.jsonc
oci-api-key

Conteúdo do arquivo opencode.jsonc:

{
  "$schema": "https://opencode.ai/config.json",
  "model": "oci/openai.gpt-oss-120b",

  "providers": {
    "oci": {
      "name": "Oracle OCI Chicago",
      "package": "@opencode/ai/providers/openai-compatible",

      "settings": {
        "baseURL": "https://inference.generativeai.us-chicago-1.oci.oraclecloud.com/20231130/actions/v1",
        "apiKey": "{file:~/.config/opencode/oci-api-key}"
      },

      "models": {
        "openai.gpt-oss-120b": {
          "modelID": "openai.gpt-oss-120b",
          "name": "OCI GPT-OSS 120B",
          "capabilities": {
            "tools": true,
            "input": ["text"],
            "output": ["text"]
          }
        },

        "openai.gpt-oss-20b": {
          "modelID": "openai.gpt-oss-20b",
          "name": "OCI GPT-OSS 20B",
          "capabilities": {
            "tools": true,
            "input": ["text"],
            "output": ["text"]
          }
        }
      }
    }
  },

  "experimental": {
    "policies": [
      {
        "action": "provider.use",
        "resource": "*",
        "effect": "deny"
      },
      {
        "action": "provider.use",
        "resource": "oci",
        "effect": "allow"
      }
    ]
  }
}

Conteúdo do arquivo oci-api-key (sua chave da API):

sk-...........

Pronto, pessoal, posteriormente seu OpenCode estará assim:

Também os outros modelos estarão disponíveis:

Pronto, pessoal, agora você utilizará créditos da OCI; cuidados com os gastos rs. Ainda estou estudando uma forma de limitar; se alguém souber, me dê um toque.

Espero que este artigo possa te ajudar em automações futuras. Qualquer coisa, só chamar no linkedin 🙂