triangle-utils 1.4.99 → 1.4.100

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -19,6 +19,19 @@ export declare class UtilsBedrock {
19
19
  web?: boolean;
20
20
  cache_period?: "5m" | "1h";
21
21
  }): Promise<string | undefined>;
22
+ claude_invoke(model_id: string, messages: {
23
+ role: Role;
24
+ text: string;
25
+ pdf?: string;
26
+ }[], options?: {
27
+ system_prompt?: string;
28
+ max_tokens?: number;
29
+ print_usage?: boolean;
30
+ print_content?: boolean;
31
+ json_format?: Record<string, any>;
32
+ web?: boolean;
33
+ cache_period?: "5m" | "1h";
34
+ }): Promise<string | undefined>;
22
35
  nova_invoke(model_id: string, prompt: string): Promise<string | undefined>;
23
36
  llama_invoke(model_id: string, prompt: string, temperature?: number, max_gen_len?: number, top_p?: number): Promise<string | undefined>;
24
37
  gpt_converse(model_id: string, prompt: string, temperature?: number, max_gen_len?: number, top_p?: number): Promise<string | undefined>;
@@ -76,57 +76,63 @@ export class UtilsBedrock {
76
76
  }
77
77
  return undefined;
78
78
  }
79
- // async claude_invoke(
80
- // model_id : string,
81
- // prompt : string,
82
- // attachment_pdf? : string,
83
- // options : {
84
- // max_tokens? : number,
85
- // print_usage? : boolean
86
- // } = {}
87
- // ) : Promise<string | undefined> {
88
- // try {
89
- // const response = await this.bedrock_runtime.invokeModel({
90
- // modelId : model_id,
91
- // body : JSON.stringify({
92
- // messages : [{
93
- // role : "user",
94
- // content : [
95
- // {
96
- // type : "text",
97
- // text : prompt
98
- // },
99
- // ...(attachment_pdf !== undefined ? [{
100
- // type: "document",
101
- // source: {
102
- // type: "base64",
103
- // media_type: "application/pdf",
104
- // data: attachment_pdf
105
- // },
106
- // title: "Attachment",
107
- // citations: { "enabled": false },
108
- // cache_control: {"type": "ephemeral"}
109
- // }] : [])
110
- // ]
111
- // }],
112
- // max_tokens: options.max_tokens || 1000,
113
- // temperature: 0,
114
- // anthropic_version: "bedrock-2023-05-31"
115
- // })
116
- // })
117
- // const body = JSON.parse(this.text_decoder.decode(response.body))
118
- // if (options.print_usage !== undefined && options.print_usage) {
119
- // console.log(body.usage)
120
- // }
121
- // return body.content[0].text
122
- // } catch (error) {
123
- // if (error instanceof Error) {
124
- // console.log(error.stack)
125
- // }
126
- // console.log("Failed to get from Bedrock.")
127
- // }
128
- // return undefined
129
- // }
79
+ async claude_invoke(model_id, messages, options = {}) {
80
+ try {
81
+ const message_params = [];
82
+ for (const message of messages) {
83
+ const content = [
84
+ {
85
+ type: "text",
86
+ text: message.text
87
+ }
88
+ ];
89
+ if (message.pdf !== undefined) {
90
+ content.push({
91
+ type: "document",
92
+ source: {
93
+ type: "base64",
94
+ media_type: "application/pdf",
95
+ data: message.pdf
96
+ },
97
+ title: "Attachment",
98
+ citations: { "enabled": false },
99
+ cache_control: { "type": "ephemeral" }
100
+ });
101
+ }
102
+ message_params.push({
103
+ role: message.role,
104
+ content: content
105
+ });
106
+ }
107
+ const response = await this.bedrock_runtime.invokeModel({
108
+ modelId: model_id,
109
+ body: JSON.stringify({
110
+ messages: message_params,
111
+ system: options.system_prompt,
112
+ tools: options.web === true ? [{ name: "web_search", type: "web_search_20260209" }] : [],
113
+ max_tokens: options.max_tokens || 1000,
114
+ temperature: 0,
115
+ anthropic_version: "bedrock-2023-05-31"
116
+ })
117
+ });
118
+ const body = JSON.parse(this.text_decoder.decode(response.body));
119
+ if (options.print_usage !== undefined && options.print_usage) {
120
+ console.log(body.usage);
121
+ }
122
+ if (options.print_content !== undefined && options.print_content) {
123
+ console.log(body.content);
124
+ }
125
+ const text = body.content.filter((content) => content.type === "text")[0].text;
126
+ return text;
127
+ }
128
+ catch (error) {
129
+ if (error instanceof Error) {
130
+ console.log(error.stack);
131
+ }
132
+ console.log("Failed to get from Bedrock.");
133
+ }
134
+ return undefined;
135
+ }
130
136
  async nova_invoke(model_id, prompt) {
131
137
  for (let i = 0; i < 3; i++) {
132
138
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "triangle-utils",
3
- "version": "1.4.99",
3
+ "version": "1.4.100",
4
4
  "main": "dist/src/index.js",
5
5
  "types": "dist/src/index.d.ts",
6
6
  "directories": {
@@ -100,57 +100,75 @@ export class UtilsBedrock {
100
100
  return undefined
101
101
  }
102
102
 
103
- // async claude_invoke(
104
- // model_id : string,
105
- // prompt : string,
106
- // attachment_pdf? : string,
107
- // options : {
108
- // max_tokens? : number,
109
- // print_usage? : boolean
110
- // } = {}
111
- // ) : Promise<string | undefined> {
112
- // try {
113
- // const response = await this.bedrock_runtime.invokeModel({
114
- // modelId : model_id,
115
- // body : JSON.stringify({
116
- // messages : [{
117
- // role : "user",
118
- // content : [
119
- // {
120
- // type : "text",
121
- // text : prompt
122
- // },
123
- // ...(attachment_pdf !== undefined ? [{
124
- // type: "document",
125
- // source: {
126
- // type: "base64",
127
- // media_type: "application/pdf",
128
- // data: attachment_pdf
129
- // },
130
- // title: "Attachment",
131
- // citations: { "enabled": false },
132
- // cache_control: {"type": "ephemeral"}
133
- // }] : [])
134
- // ]
135
- // }],
136
- // max_tokens: options.max_tokens || 1000,
137
- // temperature: 0,
138
- // anthropic_version: "bedrock-2023-05-31"
139
- // })
140
- // })
141
- // const body = JSON.parse(this.text_decoder.decode(response.body))
142
- // if (options.print_usage !== undefined && options.print_usage) {
143
- // console.log(body.usage)
144
- // }
145
- // return body.content[0].text
146
- // } catch (error) {
147
- // if (error instanceof Error) {
148
- // console.log(error.stack)
149
- // }
150
- // console.log("Failed to get from Bedrock.")
151
- // }
152
- // return undefined
153
- // }
103
+ async claude_invoke(
104
+ model_id : string,
105
+ messages : { role : Role, text : string, pdf? : string }[],
106
+ options : {
107
+ system_prompt? : string,
108
+ max_tokens? : number,
109
+ print_usage? : boolean,
110
+ print_content? : boolean,
111
+ json_format? : Record<string, any>,
112
+ web? : boolean,
113
+ cache_period? : "5m" | "1h"
114
+ } = {}
115
+ ) : Promise<string | undefined> {
116
+ try {
117
+ const message_params : MessageParam[] = []
118
+ for (const message of messages) {
119
+ const content : ContentBlockParam[] = [
120
+ {
121
+ type : "text",
122
+ text : message.text
123
+ }
124
+ ]
125
+ if (message.pdf !== undefined) {
126
+ content.push({
127
+ type: "document",
128
+ source: {
129
+ type: "base64",
130
+ media_type: "application/pdf",
131
+ data: message.pdf
132
+ },
133
+ title: "Attachment",
134
+ citations: { "enabled": false },
135
+ cache_control: {"type": "ephemeral"}
136
+ })
137
+ }
138
+ message_params.push({
139
+ role : message.role,
140
+ content : content
141
+ })
142
+
143
+ }
144
+ const response = await this.bedrock_runtime.invokeModel({
145
+ modelId : model_id,
146
+ body : JSON.stringify({
147
+ messages : message_params,
148
+ system : options.system_prompt,
149
+ tools : options.web === true ? [{ name : "web_search", type : "web_search_20260209" }] : [],
150
+ max_tokens: options.max_tokens || 1000,
151
+ temperature: 0,
152
+ anthropic_version: "bedrock-2023-05-31"
153
+ })
154
+ })
155
+ const body = JSON.parse(this.text_decoder.decode(response.body))
156
+ if (options.print_usage !== undefined && options.print_usage) {
157
+ console.log(body.usage)
158
+ }
159
+ if (options.print_content !== undefined && options.print_content) {
160
+ console.log(body.content)
161
+ }
162
+ const text = body.content.filter((content : any) => content.type === "text")[0].text
163
+ return text
164
+ } catch (error) {
165
+ if (error instanceof Error) {
166
+ console.log(error.stack)
167
+ }
168
+ console.log("Failed to get from Bedrock.")
169
+ }
170
+ return undefined
171
+ }
154
172
 
155
173
  async nova_invoke(model_id : string, prompt : string) : Promise<string | undefined> {
156
174
  for (let i = 0; i < 3; i++) {