Python에서는 LangSmith SDK를 직접 사용하거나(권장, 전체 기능 제공) LangChain package를 통해 사용할 수 있습니다(prompt push 및 pull로 제한됨).TypeScript에서는 prompt를 pull하기 위해 LangChain npm package를 사용해야 합니다(push도 가능). 다른 모든 기능은 LangSmith package를 사용하세요.
Copy
pip install -U langsmith # version >= 0.1.99pip install -U langchain langsmith # langsmith version >= 0.1.99 and langchain >= 0.2.13
LangSmith에서 현재 workspace의 api key로 LANGSMITH_API_KEY를 이미 설정했다면 이 단계를 건너뛸 수 있습니다.그렇지 않은 경우, LangSmith에서 Settings > API Keys > Create API Key로 이동하여 workspace의 API key를 가져오세요.환경 변수를 설정하세요.
Copy
export LANGSMITH_API_KEY="lsv2_..."
우리가 “prompts”라고 부르는 것은 이전에 “repos”라고 불렸으므로, 코드에서 “repo”에 대한 모든 참조는 prompt를 의미합니다.
새 prompt를 생성하거나 기존 prompt를 업데이트하려면 push prompt method를 사용할 수 있습니다.
Copy
from langsmith import Clientfrom langchain_core.prompts import ChatPromptTemplateclient = Client()prompt = ChatPromptTemplate.from_template("tell me a joke about {topic}")url = client.push_prompt("joke-generator", object=prompt)# url is a link to the prompt in the UIprint(url)
prompt와 model의 RunnableSequence로 prompt를 push할 수도 있습니다. 이는 이 prompt와 함께 사용하려는 model 구성을 저장하는 데 유용합니다. provider는 LangSmith playground에서 지원되어야 합니다. (설정 참조: Supported Providers)
Copy
from langsmith import Clientfrom langchain_core.prompts import ChatPromptTemplatefrom langchain_openai import ChatOpenAIclient = Client()model = ChatOpenAI(model="gpt-4o-mini")prompt = ChatPromptTemplate.from_template("tell me a joke about {topic}")chain = prompt | modelclient.push_prompt("joke-generator-with-model", object=chain)
prompt를 pull하려면 pull prompt method를 사용할 수 있으며, 이는 prompt를 langchain PromptTemplate로 반환합니다.private prompt를 pull하려면 owner handle을 지정할 필요가 없습니다(설정한 경우 지정할 수 있습니다).LangChain Hub에서 public prompt를 pull하려면 prompt 작성자의 handle을 지정해야 합니다.
prompt를 push하는 것과 유사하게, prompt와 model의 RunnableSequence로 prompt를 pull할 수도 있습니다. prompt를 pull할 때 include_model을 지정하기만 하면 됩니다. 저장된 prompt에 model이 포함되어 있으면 RunnableSequence로 반환됩니다. 사용 중인 model에 대한 적절한 환경 변수가 설정되어 있는지 확인하세요.
Copy
from langsmith import Clientclient = Client()chain = client.pull_prompt("joke-generator-with-model", include_model=True)chain.invoke({"topic": "cats"})
prompt를 pull할 때 특정 commit hash 또는 commit tag를 지정하여 prompt의 특정 버전을 pull할 수도 있습니다.
prompt를 pull할 때, Node.js 또는 dynamic import를 지원하는 환경을 사용하는 경우 langchain/hub/node entrypoint를 사용하는 것이 좋습니다. 이는 prompt 구성과 연결된 model의 deserialization을 자동으로 처리합니다.Node가 아닌 환경에서는 “includeModel”이 OpenAI가 아닌 model에 대해 지원되지 않으므로 기본 langchain/hub entrypoint를 사용해야 합니다.
LangSmith에 prompt를 저장하되 model provider의 API와 직접 사용하려면 변환 method를 사용할 수 있습니다. 이들은 prompt를 OpenAI 또는 Anthropic API에 필요한 payload로 변환합니다.이러한 변환 method는 LangChain integration package 내의 로직에 의존하므로, 선택한 공식 SDK 외에도 적절한 package를 dependency로 설치해야 합니다. 다음은 몇 가지 예시입니다:
list prompts, delete prompt, like prompt 및 unlike prompt method를 사용하여 prompt를 목록 조회, 삭제 및 좋아요/좋아요 취소할 수도 있습니다. 이러한 method에 대한 광범위한 문서는 LangSmith SDK client를 참조하세요.
Copy
# List all prompts in my workspaceprompts = client.list_prompts()# List my private prompts that include "joke"prompts = client.list_prompts(query="joke", is_public=False)# Delete a promptclient.delete_prompt("joke-generator")# Like a promptclient.like_prompt("efriis/my-first-prompt")# Unlike a promptclient.unlike_prompt("efriis/my-first-prompt")