Utils/llm/bedrock.py (24 lines of code) (raw):

# Before use - authorize via amazon aws cli https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html#cli-configure-sso-configure import boto3 from Utils.llm.config import API, Model, temperature client = boto3.client("bedrock-runtime") def request_bedrock_data(system_prompt, messages, model: Model): config = API[model]() system = [{"text": system_prompt}] formatted_messages = [ {"role": message['role'], "content": [{"text": message['content']}]} for message in messages ] inf_params = {"temperature": temperature} response = client.converse( modelId=config["model_id"], messages=formatted_messages, system=system, inferenceConfig=inf_params, ) return { 'content': response["output"]["message"]["content"][0]["text"], 'tokens': { "input_tokens": response["usage"]["inputTokens"], "output_tokens": response["usage"]["outputTokens"], } }