hunk.code_window:     openai_api_key: str
       anthropic_api_key: str
       supabase_url: str
       supabase_service_key: str
   class LLMSettings(BaseSettings):
       private: bool = False
  
hunk.labels: keep keep keep add keep keep keep keep
hunk.after_edit:     resend_api_key: str = "null"
       resend_email_address: str = "onboarding@resend.dev"
  
hunk.file_path: backend/core/models/settings.py
hunk.type: add
file: from typing import Annotated
  
  from fastapi import Depends
  from langchain.embeddings.openai import OpenAIEmbeddings
  from pydantic import BaseSettings
  from supabase.client import Client, create_client
  from vectorstore.supabase import SupabaseVectorStore
  
  
  class BrainSettings(BaseSettings):
      openai_api_key: str
      anthropic_api_key: str
      supabase_url: str
      supabase_service_key: str
  
  
  class LLMSettings(BaseSettings):
      private: bool = False
      model_path: str = "./local_models/ggml-gpt4all-j-v1.3-groovy.bin"
  
  
  def common_dependencies() -> dict:
      settings = BrainSettings()  # pyright: ignore reportPrivateUsage=none
      embeddings = OpenAIEmbeddings(
          openai_api_key=settings.openai_api_key
      )  # pyright: ignore reportPrivateUsage=none
      supabase_client: Client = create_client(
          settings.supabase_url, settings.supabase_service_key
      )
      documents_vector_store = SupabaseVectorStore(
          supabase_client, embeddings, table_name="vectors"
      )
      summaries_vector_store = SupabaseVectorStore(
          supabase_client, embeddings, table_name="summaries"
      )
  
      return {
          "supabase": supabase_client,
          "embeddings": embeddings,
          "documents_vector_store": documents_vector_store,
          "summaries_vector_store": summaries_vector_store,
      }
  
  
  CommonsDep = Annotated[dict, Depends(common_dependencies)]
  