LLM

By Jamie

安装

  • 基础环境MacOS
  • https://ollama.com/ 下载ollama

选择本地模型

测试

import ollama
# import clickhouse_connect

# 1. 连接ClickHouse
# client = clickhouse_connect.get_client(
#     host='localhost',
#     port=8123,
#     username='default',
#     password=''
# )

# 2. 准备数据库schema信息(关键步骤)
database_schema = """
表结构:
- users表:id Int64, name String, email String, created_date Date
- orders表:order_id Int64, user_id Int64, amount Float64, order_date Date
- products表:product_id Int64, product_name String, price Float64
"""

def ask_deepseek(question):
    # 构建包含schema的提示词
    prompt = f"""
    你是一个SQL专家。基于以下数据库结构:
    {database_schema}
    
    请将这个问题转换为ClickHouse SQL查询:
    问题:{question}
    
    只返回SQL语句,不要其他解释。
    """
    
    # 3. 调用本地DeepSeek模型
    response = ollama.chat(model='deepseek-r1:8b', messages=[
        {'role': 'user', 'content': prompt}
    ])
    
    return response['message']['content']

# 使用示例
question = "查询最近一周的订单总金额"
sql_query = ask_deepseek(question)

print(f"生成的SQL: {sql_query}")

# 4. 执行SQL查询
# if sql_query.strip().startswith('SELECT'):
#     result = client.query(sql_query)
#     print("查询结果:", result.result_rows)
  • 执行结果
➜  ~ /usr/local/bin/python3 /Users/jamie/Downloads/ask.py
生成的SQL: SELECT sum(amount) AS total_amount
FROM orders
WHERE order_date >= today() - 7
  AND order_date <= today()
Tags: install