120 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			120 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Python
		
	
	
	
#!/usr/bin/env python3
 | 
						||
"""
 | 
						||
月之暗面代码生成示例
 | 
						||
展示如何使用 Kimi 进行各种代码生成任务
 | 
						||
"""
 | 
						||
 | 
						||
from moonshot_config import get_moonshot_client
 | 
						||
 | 
						||
def generate_function(description, language="Python"):
 | 
						||
    """生成函数代码"""
 | 
						||
    client = get_moonshot_client()
 | 
						||
    
 | 
						||
    prompt = f"""
 | 
						||
请用 {language} 编写一个函数:{description}
 | 
						||
 | 
						||
要求:
 | 
						||
1. 包含完整的函数定义
 | 
						||
2. 添加适当的注释和文档字符串
 | 
						||
3. 包含错误处理(如果需要)
 | 
						||
4. 提供使用示例
 | 
						||
 | 
						||
请只返回代码,不要额外的解释。
 | 
						||
"""
 | 
						||
    
 | 
						||
    try:
 | 
						||
        response = client.chat.completions.create(
 | 
						||
            model="moonshot-v1-8k",
 | 
						||
            messages=[
 | 
						||
                {
 | 
						||
                    "role": "system",
 | 
						||
                    "content": "你是一个专业的程序员,擅长编写高质量、可维护的代码。"
 | 
						||
                },
 | 
						||
                {
 | 
						||
                    "role": "user",
 | 
						||
                    "content": prompt
 | 
						||
                }
 | 
						||
            ],
 | 
						||
            max_tokens=800,
 | 
						||
            temperature=0.1
 | 
						||
        )
 | 
						||
        
 | 
						||
        return response.choices[0].message.content
 | 
						||
        
 | 
						||
    except Exception as e:
 | 
						||
        return f"生成失败: {e}"
 | 
						||
 | 
						||
def explain_code(code):
 | 
						||
    """解释代码功能"""
 | 
						||
    client = get_moonshot_client()
 | 
						||
    
 | 
						||
    prompt = f"""
 | 
						||
请详细解释以下代码的功能、逻辑和关键点:
 | 
						||
 | 
						||
```
 | 
						||
{code}
 | 
						||
```
 | 
						||
 | 
						||
请用中文回答,包括:
 | 
						||
1. 代码的主要功能
 | 
						||
2. 关键算法或逻辑
 | 
						||
3. 可能的改进建议
 | 
						||
"""
 | 
						||
    
 | 
						||
    try:
 | 
						||
        response = client.chat.completions.create(
 | 
						||
            model="moonshot-v1-8k",
 | 
						||
            messages=[
 | 
						||
                {
 | 
						||
                    "role": "system",
 | 
						||
                    "content": "你是一个代码审查专家,擅长分析和解释代码。"
 | 
						||
                },
 | 
						||
                {
 | 
						||
                    "role": "user",
 | 
						||
                    "content": prompt
 | 
						||
                }
 | 
						||
            ],
 | 
						||
            max_tokens=600,
 | 
						||
            temperature=0.2
 | 
						||
        )
 | 
						||
        
 | 
						||
        return response.choices[0].message.content
 | 
						||
        
 | 
						||
    except Exception as e:
 | 
						||
        return f"解释失败: {e}"
 | 
						||
 | 
						||
def main():
 | 
						||
    print("=== 月之暗面代码生成示例 ===\n")
 | 
						||
    
 | 
						||
    # 示例1:生成排序函数
 | 
						||
    print("1. 生成快速排序函数:")
 | 
						||
    print("-" * 40)
 | 
						||
    code1 = generate_function("实现快速排序算法,对整数列表进行排序")
 | 
						||
    print(code1)
 | 
						||
    print("\n" + "=" * 60 + "\n")
 | 
						||
    
 | 
						||
    # 示例2:生成数据处理函数
 | 
						||
    print("2. 生成数据处理函数:")
 | 
						||
    print("-" * 40)
 | 
						||
    code2 = generate_function("读取CSV文件并计算数值列的统计信息(均值、中位数、标准差)")
 | 
						||
    print(code2)
 | 
						||
    print("\n" + "=" * 60 + "\n")
 | 
						||
    
 | 
						||
    # 示例3:解释代码
 | 
						||
    sample_code = """
 | 
						||
def fibonacci(n):
 | 
						||
    if n <= 1:
 | 
						||
        return n
 | 
						||
    return fibonacci(n-1) + fibonacci(n-2)
 | 
						||
"""
 | 
						||
    
 | 
						||
    print("3. 代码解释示例:")
 | 
						||
    print("-" * 40)
 | 
						||
    print("原代码:")
 | 
						||
    print(sample_code)
 | 
						||
    print("\n解释:")
 | 
						||
    explanation = explain_code(sample_code)
 | 
						||
    print(explanation)
 | 
						||
 | 
						||
if __name__ == "__main__":
 | 
						||
    main() |