Snowflake Cortex는 Mistral, Reka, Meta, Google과 같은 기업의 연구원들이 훈련한 업계 최고의 대규모 언어 모델(LLM)에 즉시 액세스할 수 있게 해주며, Snowflake에서 개발한 오픈 엔터프라이즈급 모델인 Snowflake Arctic도 포함되어 있습니다. 이 예제는 LangChain을 사용하여 Snowflake Cortex와 상호작용하는 방법을 다룹니다.

설치 및 설정

아래 명령어를 사용하여 snowflake-snowpark-python 라이브러리를 설치하는 것으로 시작합니다. 그런 다음 Snowflake에 연결하기 위한 자격 증명을 환경 변수로 구성하거나 직접 전달합니다.
pip install -qU snowflake-snowpark-python
import getpass
import os

# First step is to set up the environment variables, to connect to Snowflake,
# you can also pass these snowflake credentials while instantiating the model

if os.environ.get("SNOWFLAKE_ACCOUNT") is None:
    os.environ["SNOWFLAKE_ACCOUNT"] = getpass.getpass("Account: ")

if os.environ.get("SNOWFLAKE_USERNAME") is None:
    os.environ["SNOWFLAKE_USERNAME"] = getpass.getpass("Username: ")

if os.environ.get("SNOWFLAKE_PASSWORD") is None:
    os.environ["SNOWFLAKE_PASSWORD"] = getpass.getpass("Password: ")

if os.environ.get("SNOWFLAKE_DATABASE") is None:
    os.environ["SNOWFLAKE_DATABASE"] = getpass.getpass("Database: ")

if os.environ.get("SNOWFLAKE_SCHEMA") is None:
    os.environ["SNOWFLAKE_SCHEMA"] = getpass.getpass("Schema: ")

if os.environ.get("SNOWFLAKE_WAREHOUSE") is None:
    os.environ["SNOWFLAKE_WAREHOUSE"] = getpass.getpass("Warehouse: ")

if os.environ.get("SNOWFLAKE_ROLE") is None:
    os.environ["SNOWFLAKE_ROLE"] = getpass.getpass("Role: ")
from langchain_community.chat_models import ChatSnowflakeCortex
from langchain.messages import HumanMessage, SystemMessage

# By default, we'll be using the cortex provided model: `mistral-large`, with function: `complete`
chat = ChatSnowflakeCortex()
위 셀은 Snowflake 자격 증명이 환경 변수에 설정되어 있다고 가정합니다. 수동으로 지정하려면 다음 코드를 사용하세요:
chat = ChatSnowflakeCortex(
    # Change the default cortex model and function
    model="mistral-large",
    cortex_function="complete",

    # Change the default generation parameters
    temperature=0,
    max_tokens=10,
    top_p=0.95,

    # Specify your Snowflake Credentials
    account="YOUR_SNOWFLAKE_ACCOUNT",
    username="YOUR_SNOWFLAKE_USERNAME",
    password="YOUR_SNOWFLAKE_PASSWORD",
    database="YOUR_SNOWFLAKE_DATABASE",
    schema="YOUR_SNOWFLAKE_SCHEMA",
    role="YOUR_SNOWFLAKE_ROLE",
    warehouse="YOUR_SNOWFLAKE_WAREHOUSE"
)

chat model 호출하기

이제 invoke 또는 stream 메서드를 사용하여 chat model을 호출할 수 있습니다. messages = [ SystemMessage(content=“You are a friendly assistant.”), HumanMessage(content=“What are large language models?”), ] chat.invoke(messages)

Stream

# Sample input prompt
messages = [
    SystemMessage(content="You are a friendly assistant."),
    HumanMessage(content="What are large language models?"),
]

# Invoke the stream method and print each chunk as it arrives
print("Stream Method Response:")
for chunk in chat._stream(messages):
    print(chunk.message.content)

Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.
I