利用langchain_aws模块实现集成bedrock调用模型,测试源码
from langchain_aws.chat_models import ChatBedrock
import jsondef invoke_with_text(model_id, message):llm = ChatBedrock(model_id=model_id, region_name="us-east-1")res = llm.invoke(message)print(f"模型返回的结果:\n {res.content}")# print(f"id: {res.id}")# print(f"additional_kwargs: {res.additional_kwargs}")# print(f"response_metadata: {res.response_metadata}")def invoke_with_json(model_id, input_text):llm = ChatBedrock(model_id=model_id, region_name="us-east-1")prompt = {"text_prompts": [{"text": f"您好,我是一个翻译官。请将以下句子翻译成英文:\n\n{input_text}"}],"cfg_scale": 10,"seed": 0,"steps": 50}response = llm.invoke(json.dumps(prompt))result = response.contentprint(f"模型返回的结果: {result}")def translate(model_id, input_text, target_lang="en"):llm = ChatBedrock(model_id=model_id, region_name="us-east-1")prompt = {"text_prompts": [{"text": f"您好,我是一个翻译官。请将以下句子翻译成{target_lang}语:\n\n{input_text}"}],"cfg_scale": 10,"seed": 0,"steps": 50}response = llm.invoke(json.dumps(prompt))result = response.contentprint(f"模型返回的结果: {result}")if __name__=="__main__":# 使用文本输入调用model_id = "anthropic.claude-3-sonnet-20240229-v1:0"message = "您好,您是一个翻译官,烦请将如下语句翻译成英文: 关于这个问题的解决方案,我们将会在后面测试验证下,然后在将手册同步给您"invoke_with_text(model_id, message)# 使用 JSON 输入调用input_text = "关于这个问题的解决方案,我们将会在后面测试验证下,然后在将手册同步给您"invoke_with_json(model_id, input_text)# 翻译成英文translate(model_id, input_text, target_lang="en")# 翻译成西班牙语translate(model_id, input_text, target_lang="es")
运行之后的结果如下
模型返回的结果:
Here is the translation to English:Regarding the solution to this issue, we will conduct tests and verification later, then we will sync the manual to you.
模型返回的结果: Here is the translation to English:Regarding the solution to this issue, we will validate it through further testing later on, and then synchronize the manual with you.
模型返回的结果: Here is the translation to English:Regarding the solution to this issue, we will perform further tests and verification, and then synchronize the manual with you.
模型返回的结果: Aquí está la traducción al español:Sobre la solución a este problema, la validaremos con pruebas más adelante y luego sincronizaremos el manual con usted.