MCPcopy Create free account
hub / github.com/FuzzAnything/PromptFuzz / generate

Method generate

src/request/openai.rs:110–139  ·  view source on GitHub ↗

Generate `SAMPLE_N` programs by chatting with instructions.

(&self, prompt: &super::prompt::Prompt)

Source from the content-addressed store, hash-verified

108impl Handler for OpenAIHanler {
109 /// Generate `SAMPLE_N` programs by chatting with instructions.
110 fn generate(&self, prompt: &super::prompt::Prompt) -> eyre::Result<Vec<Program>> {
111 let start = std::time::Instant::now();
112 let chat_msgs = prompt.to_chatgpt_message();
113 let mut futures = Vec::new();
114 for _ in 0..get_config().n_sample {
115 let future = generate_program_by_chat(chat_msgs.clone());
116 futures.push(future);
117 }
118 let results = self.rt.block_on(join_all(futures));
119
120 let mut programs = Vec::new();
121 let mut total_usage = TokenUsage::default();
122
123 for result in results {
124 if let Ok((program, usage)) = result {
125 programs.push(program);
126 total_usage.add(&usage);
127 }
128 }
129
130 let elapsed = start.elapsed();
131 log::info!("OpenAI Generate time: {}s", elapsed.as_secs());
132 log::info!("Response Tokens\nCompletion Tokens: {}\nPrompt Tokens: {}\nTotal Tokens: {}\nCached Tokens: {}",
133 total_usage.completion_tokens,
134 total_usage.prompt_tokens,
135 total_usage.total_tokens,
136 total_usage.cached_tokens);
137
138 Ok(programs)
139 }
140}
141
142/// Get the OpenAI interface client.

Callers 1

Calls 5

get_configFunction · 0.85
generate_program_by_chatFunction · 0.85
to_chatgpt_messageMethod · 0.80
addMethod · 0.80
pushMethod · 0.45

Tested by

no test coverage detected