Spaces:
Running
Running
File size: 4,725 Bytes
345e9a0 1f1d8d8 345e9a0 1f1d8d8 43c0aec 3361c46 345e9a0 1f1d8d8 345e9a0 1f1d8d8 345e9a0 1f1d8d8 345e9a0 1f1d8d8 345e9a0 1f1d8d8 43c0aec 1f1d8d8 345e9a0 1f1d8d8 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
import gradio as gr
import requests
import os
from datetime import datetime
# Configuração GLM-4.6
HF_TOKEN = os.getenv("HF_TOKEN", "")
MODEL_ID = "zai-org/GLM-4.6-FP8:zai-org"
API_URL = "https://router.huggingface.co/v1"
class CodeAgentGLM:
def __init__(self):
self.headers = {"Authorization": f"Bearer {HF_TOKEN}"}
def generate_code(self, prompt, language="python", max_tokens=1024):
"""Gera código usando GLM-4.6"""
full_prompt = f"""You are an expert code generation AI. Generate high-quality {language} code.
Request: {prompt}
Provide only the code without explanations:"""
payload = {
"inputs": full_prompt,
"parameters": {
"max_new_tokens": max_tokens,
"temperature": 0.3,
"top_p": 0.9,
"do_sample": True
}
}
try:
response = requests.post(API_URL, headers=self.headers, json=payload, timeout=30)
if response.status_code == 200:
result = response.json()
if isinstance(result, list) and len(result) > 0:
return result[0].get("generated_text", "").split("Provide only the code without explanations:")[-1].strip()
return f"Erro: {response.status_code}"
except Exception as e:
return f"Erro na chamada: {str(e)}"
def explain_code(self, code):
"""Explica código"""
prompt = f"Explique brevemente este código:\n\n{code}"
payload = {
"inputs": prompt,
"parameters": {"max_new_tokens": 500, "temperature": 0.5}
}
try:
response = requests.post(API_URL, headers=self.headers, json=payload)
if response.status_code == 200:
result = response.json()
return result[0].get("generated_text", "") if isinstance(result, list) else str(result)
return f"Erro: {response.status_code}"
except Exception as e:
return f"Erro: {str(e)}"
agent = CodeAgentGLM()
# Interface Gradio
with gr.Blocks(title="GLM-4.6 Code Agent", theme=gr.themes.Soft()) as demo:
gr.Markdown("""
# 💻 GLM-4.6 Code Agent
**KILOcode Agent Integration** - Geração e explicação de código com GLM-4.6
- 🚀 Segue padrões GPT
- 📚 Suporta 200K tokens de contexto
- 💪 Excelente em coding tasks
""")
with gr.Tabs():
with gr.Tab("🔨 Code Generation"):
code_prompt = gr.Textbox(
label="📝 Descrição do código",
placeholder="Ex: Crie uma função que calcula fibonacci com memoização",
lines=3
)
language = gr.Dropdown(
choices=["python", "javascript", "java", "cpp", "go", "rust", "typescript, nodeJs"],
value="python",
label="🔤 Linguagem"
)
max_tokens_slider = gr.Slider(
minimum=256,
maximum=2048,
value=1024,
step=256,
label="📏 Max tokens"
)
generate_btn = gr.Button("Gerar Código", variant="primary")
code_output = gr.Code(language="python", label="💾 Código Gerado")
def generate(prompt, lang, tokens):
return agent.generate_code(prompt, lang, tokens)
generate_btn.click(generate, [code_prompt, language, max_tokens_slider], code_output)
with gr.Tab("📖 Code Explanation"):
code_to_explain = gr.Code(
language="python",
label="Código para explicar",
lines=10
)
explain_btn = gr.Button("Explicar", variant="primary")
explanation_output = gr.Textbox(label="Explicação", lines=6)
explain_btn.click(agent.explain_code, code_to_explain, explanation_output)
with gr.Tab("⚙️ Configuração"):
gr.Markdown("""
## Configuração do KILOcode Agent
### Modelo: GLM-4.6
- **Tamanho**: 357B parâmetros
- **Contexto**: 200K tokens
- **Formato**: BF16
- **Performance**: ⭐⭐⭐⭐⭐ para coding
### Como usar com KILOcode:
1. Adicione seu HF_TOKEN nos secrets
2. Use os endpoints de geração e explicação
3. Suporta múltiplas linguagens de programação
""")
if __name__ == "__main__":
demo.launch(share=True) |