langchain-ai / langchain-aws

Build LangChain Applications on AWS
MIT License
63 stars 46 forks source link

Facing Issues While Adding Guardrail parameter to ChatbBedrock initializer. #51

Open MaverickScientist opened 1 month ago

MaverickScientist commented 1 month ago

langchain-aws version used: 0.1.4

Have tried all the below scenarios:

  1. guardrails={ "trace": False, "accept": "application/json", "contentType": "application/json", "modelId": model_id, "guardrailIdentifier": "identifier", --> "id" of the Guardrail I created using Bedrock Console. "guardrailVersion": "5"}

  2. guardrail_kwargs={"guardrailIdentifier": "identifier", "guardrailVersion": "5"}

  3. guardrails={ "trace": False, "guardrailIdentifier": "xxxx" --> the ARN of the guardrail I created using Bedrock Console. "guardrailVersion": "5"}

  4. guardrails={ "trace": False, "guardrailIdentifier": "identifier", --> "id" of the Guardrail I created using Bedrock Console. "guardrailVersion": "5"}

Adding the exception below:

  1. 2024-05-19 15:27:29,346 ERROR root ScriptRunner.scriptThread : Error Occured: Error raised by bedrock service: Parameter validation failed: Unknown parameter in input: "guardrailIdentifier", must be one of: body, contentType, accept, modelId Unknown parameter in input: "guardrailVersion", must be one of: body, contentType, accept, modelId

Tried the alternative as below: guardrails={ "trace": False, "id": "identifier", --> "id" of the Guardrail I created using Bedrock Console. "version": "5"}

Got the exception as below:

Error Occured: Guardrails must be a dictionary with 'guardrailIdentifier' and 'guardrailVersion' keys.

The below option doesn't give any error but eventually has no relevance as the identifier value is None:

guardrails={ "trace": False, "guardrailIdentifier": None "guardrailVersion": "5"}

Please suggest the correct way of passing the guardrail parameter for it to work.

PS: I have tested the Guardrail from Bedrock Console and it works like a charm.