import os | |
from dotenv import load_dotenv | |
import anthropic | |
import gradio as gr | |
load_dotenv() | |
os.environ['ANTHROPIC_API_KEY'] = os.getenv('ANTHROPIC_API_KEY') | |
claude = anthropic.Anthropic() | |
CLAUDE_MODEL = "claude-3-5-sonnet-20241022" | |
system_message = "You are an assistant that reimplements Python code in high performance C++. \ | |
Respond only with C++ code; use comments sparingly and do not provide any explanation other than occasional comments. \ | |
The C++ response needs to produce an identical output in the fastest possible time." | |
def user_prompt_for(python): | |
user_prompt = f"Rewrite this Python code in C++ with the fastest possible implementation that produces identical output in the least time. \ | |
Respond only with C++ code; do not explain your work other than a few comments. \ | |
Pay attention to number types to ensure no int overflows. Remember to #include all necessary C++ packages such as iomanip.\ | |
\n\n{python}" | |
return user_prompt | |
def rewrite(python): | |
result = claude.messages.stream( | |
model=CLAUDE_MODEL, | |
max_tokens=2000, | |
system=system_message, | |
messages=[{"role": "user", "content": user_prompt_for(python)}], | |
) | |
reply = "" | |
with result as stream: | |
for text in stream.text_stream: | |
reply += text | |
yield reply.replace('```cpp\n','').replace('```','') | |
demo = gr.Interface( | |
fn=rewrite, | |
inputs=gr.Code(label="Python code:", language="python", lines=10), | |
outputs=gr.Code(label="C++ code:", language="cpp", lines=10) | |
) | |
demo.launch() | |