MCPcopy Index your code
hub / github.com/InfinitiBit/graphbit / build_llm_request

Method build_llm_request

core/src/agents.rs:145–193  ·  view source on GitHub ↗

Build an LLM request from a message

(&self, message: &AgentMessage)

Source from the content-addressed store, hash-verified

143
144 /// Build an LLM request from a message
145 fn build_llm_request(&self, message: &AgentMessage) -> LlmRequest {
146 let mut messages = Vec::new();
147
148 // Add system prompt if available
149 if !self.config.system_prompt.is_empty() {
150 messages.push(crate::llm::LlmMessage::system(&self.config.system_prompt));
151 }
152
153 // Add the user message
154 let content = match &message.content {
155 MessageContent::Text(text) => text.clone(),
156 MessageContent::Data(data) => data.to_string(),
157 MessageContent::ToolCall {
158 tool_name,
159 parameters,
160 } => {
161 format!("Tool call: {tool_name} with parameters: {parameters}")
162 }
163 MessageContent::ToolResponse {
164 tool_name,
165 result,
166 success,
167 } => {
168 format!("Tool {tool_name} response (success: {success}): {result}")
169 }
170 MessageContent::Error {
171 error_code,
172 error_message,
173 } => {
174 format!("Error {error_code}: {error_message}")
175 }
176 };
177
178 messages.push(crate::llm::LlmMessage::user(content));
179
180 // Create request with messages
181 let mut request = LlmRequest::with_messages(messages);
182
183 // Apply configuration
184 if let Some(max_tokens) = self.config.max_tokens {
185 request = request.with_max_tokens(max_tokens);
186 }
187
188 if let Some(temperature) = self.config.temperature {
189 request = request.with_temperature(temperature);
190 }
191
192 request
193 }
194
195 /// Convert LLM response to agent message
196 fn llm_response_to_message(

Callers 2

process_messageMethod · 0.80
executeMethod · 0.80

Calls 5

cloneMethod · 0.80
to_stringMethod · 0.80
is_emptyMethod · 0.45
with_max_tokensMethod · 0.45
with_temperatureMethod · 0.45

Tested by

no test coverage detected