File size: 1,186 Bytes
dc84669
f904c62
dc84669
 
 
 
 
 
f904c62
dc84669
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f904c62
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from anthropic import AnthropicBedrock
from langchain_aws.llms.bedrock import BedrockLLM
import os

def get_anthropic_client():
    return AnthropicBedrock(
        aws_access_key=os.environ["AWS_ACCESS_KEY_ID"],
        aws_secret_key=os.environ["AWS_SECRET_ACCESS_KEY"],
        aws_region=os.environ.get("AWS_DEFAULT_REGION", "eu-central-1")
    )

def claude_stream_response(messages, client):
    stream = client.messages.create(
        model="anthropic.claude-v2:1",
        max_tokens=1024,
        temperature=0.7,
        messages=messages,
        stream=True
    )

    for event in stream:
        # Only yield parts that have actual text deltas
        if event.type == "content_block_delta":
            text = getattr(event.delta, "text", None)
            if text:
                yield text



claude_llm = BedrockLLM(
    aws_access_key_id     = os.environ["AWS_ACCESS_KEY_ID"],
    aws_secret_access_key = os.environ["AWS_SECRET_ACCESS_KEY"],
    region_name           = "eu-central-1",
    provider              = "anthropic",
    model_id              = "anthropic.claude-v2:1",
    streaming             = True,
    model_kwargs          = {"temperature": 0.7},
)