MCPcopy Index your code
hub / github.com/ChrisFeldmeier/OpenCodeRust / convert_request

Method convert_request

crates/opencode-provider/src/bedrock.rs:150–203  ·  view source on GitHub ↗
(&self, request: ChatRequest)

Source from the content-addressed store, hash-verified

148 }
149
150 fn convert_request(&self, request: ChatRequest) -> BedrockConverseRequest {
151 let mut messages = Vec::new();
152 let mut system = Vec::new();
153
154 for msg in request.messages {
155 match msg.role {
156 Role::System => {
157 if let Content::Text(text) = msg.content {
158 system.push(BedrockSystemContent { text });
159 }
160 }
161 Role::User => {
162 let content = match msg.content {
163 Content::Text(t) => vec![BedrockContentBlock::text(&t)],
164 Content::Parts(parts) => parts
165 .iter()
166 .filter_map(|p| p.text.as_ref().map(|t| BedrockContentBlock::text(t)))
167 .collect(),
168 };
169 messages.push(BedrockMessage {
170 role: "user".to_string(),
171 content,
172 });
173 }
174 Role::Assistant => {
175 let content = match msg.content {
176 Content::Text(t) => vec![BedrockContentBlock::text(&t)],
177 Content::Parts(parts) => parts
178 .iter()
179 .filter_map(|p| p.text.as_ref().map(|t| BedrockContentBlock::text(t)))
180 .collect(),
181 };
182 messages.push(BedrockMessage {
183 role: "assistant".to_string(),
184 content,
185 });
186 }
187 Role::Tool => {}
188 }
189 }
190
191 BedrockConverseRequest {
192 messages,
193 system: if system.is_empty() {
194 None
195 } else {
196 Some(system)
197 },
198 inference_config: Some(BedrockInferenceConfig {
199 max_tokens: request.max_tokens,
200 temperature: request.temperature,
201 }),
202 }
203 }
204
205 async fn sign_request(
206 &self,

Callers 2

chatMethod · 0.45
chat_streamMethod · 0.45

Calls 2

newFunction · 0.85
is_emptyMethod · 0.80

Tested by

no test coverage detected