mirror of
https://github.com/anthropics/claude-cookbooks.git
synced 2025-10-06 01:00:28 +03:00
42 lines
1.4 KiB
Python
42 lines
1.4 KiB
Python
from anthropic import Anthropic
|
|
import os
|
|
import re
|
|
|
|
client = Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])
|
|
|
|
def llm_call(prompt: str, system_prompt: str = "", model="claude-3-5-sonnet-20241022") -> str:
|
|
"""
|
|
Calls the model with the given prompt and returns the response.
|
|
|
|
Args:
|
|
prompt (str): The user prompt to send to the model.
|
|
system_prompt (str, optional): The system prompt to send to the model. Defaults to "".
|
|
model (str, optional): The model to use for the call. Defaults to "claude-3-5-sonnet-20241022".
|
|
|
|
Returns:
|
|
str: The response from the language model.
|
|
"""
|
|
client = Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])
|
|
messages = [{"role": "user", "content": prompt}]
|
|
response = client.messages.create(
|
|
model=model,
|
|
max_tokens=4096,
|
|
system=system_prompt,
|
|
messages=messages,
|
|
temperature=0.1,
|
|
)
|
|
return response.content[0].text
|
|
|
|
def extract_xml(text: str, tag: str) -> str:
|
|
"""
|
|
Extracts the content of the specified XML tag from the given text. Used for parsing structured responses
|
|
|
|
Args:
|
|
text (str): The text containing the XML.
|
|
tag (str): The XML tag to extract content from.
|
|
|
|
Returns:
|
|
str: The content of the specified XML tag, or an empty string if the tag is not found.
|
|
"""
|
|
match = re.search(f'<{tag}>(.*?)</{tag}>', text, re.DOTALL)
|
|
return match.group(1) if match else "" |