Amazon Bedrock Part 2: Hindi Text Summarization using Amazon Bedrock and Anthropic Claude

Diptiman Raichaudhuri
3 min readOct 3, 2023

--

Disclosure: All opinions expressed in this article are my own, and represent no one but myself and not those of my current or any previous employers.

Bedrock-Claude-v2 Hindi Text Summarization

This is part 2 of my Amazon Bedrock series of posts.

Here are the links for the previous articles :

Amazon Bedrock Part 1 : RAG with Pinecone Vector Store, Anthropic Claude LLM and LangChain — Income Tax FAQ Q&A bot

In Part 1 I described how to setup Amazon Bedrock Model Access through AWS console and use a SageMaker studio jupyter notebook to run LangChain Q&A agents on a PDF knowledgebase stored in Pinecone.

In this post, I intend to use Anthropic Claude LLM with Amazon Bedrock to summarize Hindi paragraphs using LLM prompts written in Hindi. This is a powerful feature for local language tasks in a country of ours where more than 500 million (Source: wikipedia) hindi speaking citizens reside.

Assuming Amazon Bedrock and Amazon SageMaker Studio both setup and configured properly (if not, please go through Part 1) create a SageMaker studio ml.t3.medium notebook and install latest AWS boto3, botocore and langchain dependencies :

%pip install --quiet boto3==1.28.57 botocore==1.31.57 langchain==0.0.305

Then create the bedrock runtime boto3 client :

bedrock_runtime = boto3.client(
service_name = "bedrock-runtime",
region_name = "us-east-1"
)

Next select the Anthropic Claude-v2 LLM :

modelId = 'anthropic.claude-v2'
accept = 'application/json'
contentType = 'application/json'

Let’s create a variable to store the paragraph :

user_input = """
जन्मभूमि किसे प्यारी नहीं लगती।
कहा तो यहाँ तक कहा गया है कि जन्मभूमि स्वर्ग से भी श्रेष्ठ है।
मनुष्य जहाँ जन्म लेता है, वहाँ की धूली में खेलकर बड़ा होता है वहाँ के सभी लोग उसके जाने-पहचाने हो जाते हैं।
सभी की भाषा और रहन-सहन समान होने के कारण वहाँ के लोगों से उसकी ममता का होना स्वाभाविक है।
मनुष्य चाहे कितने भी अच्छे स्थान पर रहता हो लेकिन उसका मन अपनी जन्म-भूमि की ओर आने को उत्सुक रहता है।
जिस देश में हमने जन्म लिया है उसके अन्न, जल और वायु से हमारा पालन हुआ है, उसके प्रति प्रेम की भावना रखना हमारा कर्त्तव्य है।
पाकिस्तान ने हमारे देश की भूमि पर अधिकार किया।
हमारे वीर जवानों ने जन्मभूमि की रक्षा में कारगिल के युद्ध में अपने प्राण न्यौछावर कर दिए। अपनी भूमि वापस ली और दुश्मन के दाँत खट्टे किए।
देश की अवनति में हमारी अवनति होगी, उससे न तो हम संपन्न रह सकते हैं और न हमारा मान हो सकता है।
देश के प्रति प्रेम की भावना प्रत्येक देशवासी को रखनी चाहिए।
"""

I copied the hindi content from here.

I also create a hindi prompt variable to prepare the prompt in the format Claude-v2 understands. I provide a hindi Human message prompt to summarize the paragraph in 3 phrases.

prompt_hindi = f"""
\n\nHuman: तीन पंक्तियों में सारांश लिखें|
{user_input}

Assistant:
"""

Next, I create the JSON payload :

# Claude - Body Syntex
body = json.dumps({
"prompt": prompt_hindi,
"max_tokens_to_sample":4096,
"temperature":0.5,
"top_k":250,
"top_p":0.5,
"stop_sequences": ["\n\nHuman:"]
})

Once, the payload is prepared, I can invoke an invoke_model() call on Claude-v2 using Bedrock :

response = bedrock_runtime.invoke_model(body=body, modelId=modelId, accept=accept, contentType=contentType)
response_body = json.loads(response.get('body').read())

print(response_body.get('completion'))
#print(response_body)

It’s worth getting used to the JSON response format :

#print(response_body)

And, Claude-v2 responds with the 3 summarized phrases I asked for in Hindi :

तीन पंक्तियों में सारांश:

जन्मभूमि सबको प्यारी लगती है। वहां के लोगों से ममता होती है। देश के प्रति प्रेम रखना सभी का कर्तव्य है।

We might experiment more with knobs and dials of Claude using temperature, top_k etc …

This is an useful business case where text summarization along with content generation business cases like emails, circulars etc .. could be generated using local languages like Hindi. I have observed similar results for paragraphs written in Bangla/Bengali as well.

Here’s the notebook attached.

Happy coding !

--

--

No responses yet