import os import gradio as gr from openai import OpenAI SYSTEM_PROMPT = "You are an intelligent programming assistant named CodeGeeX. You will answer any questions users have about programming, coding, and computers, and provide code that is formatted correctly, executable, accurate, and secure, and offer detailed explanations when necessary." client = OpenAI(base_url="https://api.chatglm.cn/v1", api_key=os.getenv("CHATGLM_API_KEY")) def respond(message, history: list[tuple[str, str]]): messages = [{"role": "system", "content": SYSTEM_PROMPT}] for val in history: if val[0]: messages.append({"role": "user", "content": val[0]}) if val[1]: messages.append({"role": "assistant", "content": val[1]}) messages.append({"role": "user", "content": message}) response = "" for message in client.chat.completions.create( messages=messages, # type: ignore model="codegeex4-9b-biz", stream=True, temperature=0.7, max_tokens=1024, top_p=0.95, ): # type: ignore token = message.choices[0].delta.content response += token yield response with gr.Blocks(fill_height=True) as demo: gr.Markdown( """

""") gr.Markdown( """

🏠 Homepage | 📖 Blog | 🛠 VS Code or Jetbrains Extensions | 💻 Github | 🤖 HuggingFace

""") gr.Markdown( """

We introduce CodeGeeX4 9B, a large-scale multilingual code generation model with 9 billion parameters, pre-trained on a large code corpus of more than 300 programming languages. CodeGeeX4 9B is open source, please refer to our GitHub for more details. We also offer free VS Code and Jetbrains extensions for full functionality.

""") gr.ChatInterface(respond, fill_height=True) if __name__ == "__main__": demo.launch()