Gemini 2.0震撼发布遭遇滑铁卢!能否击败Claude3.5?逻辑推理到算法实现的全面测试!gemini-exp-1206+LlamaIndex实现Text to SQL多表联合查询!含完整源码

使用unsloth微调llama3,请给出完整代码

用python实现赛博朋克风格的贪吃蛇游戏

用 Python 实现一个程序,判断 32416190071 是否是一个素数。

how many 'r's in strawberrrry?
用python实现计算179424673是第几个质数?不要引入外部库
用 Python 实现一个程序,检查12345678910111213141516和1718192021222324252627是否互质。


###答案:
互质

完全数探索:

编写python程序解决下面的题目:
如果一个数等于它所有真因子(除了自身以外的因子)的和,那么这个数被称为完全数。 
例如:6=1+2+3是完全数。 求第5个完全数的位数。

###答案:
第5个完全数是: 33550336
它的位数是: 8

数列模式识别题:

已知一个特殊的数列,第1项为1,从第2项开始,
每一项等于前一项的各位数字的平方和,
直到某一项重复出现为止,形成循环。
编写Python程序计算第2024项的值。

#答案是1

大数分解与质数探索题:


编写Python程序,找出区间[10^12, 10^12 + 1000]内的所有孪生质数对。
(孪生质数是指差为2的两个质数,如(3,5), (5,7), (11,13)等)


###答案:
在区间[1000000000000, 1000000001000]内找到4对孪生质数:
1. (1000000000061, 1000000000063)
2. (1000000000331, 1000000000333)
3. (1000000000787, 1000000000789)
4. (1000000000931, 1000000000933)

算法思维转换题:

定义一个正整数的"镜像质数对":如果一个数是质数,且将其十进制表示左右翻转后得到的数也是质数,则这两个数构成一个镜像质数对。
例如:13和31构成一个镜像质数对。
请编写程序找出所有小于10^7的镜像质数对的数量。注意:一个数的镜像如果等于自身,只能算作一个镜像质数对。



###答案:
小于10000000的镜像质数对数量为:41610

前10个镜像质数对示例:
2 <-> 2
3 <-> 3
5 <-> 5
7 <-> 7
11 <-> 11
13 <-> 31
17 <-> 71
37 <-> 73
79 <-> 97
101 <-> 101

其中回文质数的数量:781

组合数学题:

编写Python程序,找出满足以下条件的最小正整数n:
- n的十进制表示恰好有2024位
- n是7的倍数
- n的所有数位都是1或3

###答案
数字是: 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111331
验证:
位数: 2024
是7的倍数: True
只包含1和3: True

元认知推理难题:

三位哲学家参加一个实验:
- 实验者在每人背后贴一个数字标签
- 每人只能看到其他人的标签,看不到自己的
- 标签上的数字可能相同也可能不同
- 实验者问:"你能确定自己标签上的数字吗?"

第一位哲学家说:"我不能确定"
第二位哲学家说:"我也不能确定"
第三位哲学家说:"我现在知道我的数字了"

已知标签上的数字都是1到5之间的整数。
请推理第三位哲学家的标签数字是多少。要求详细说明推理过程。

###答案:3

蓝眼睛和红眼睛

一个岛上有100个人,其中95个是蓝眼睛,5个是红眼睛。岛上有三个奇怪的规则:
1. 不能通过镜子和水面来看自己眼睛的颜色。
2. 不能告诉对方别人的眼睛颜色。
3. 一旦知道自己眼睛的颜色,必须在当夜离岛。
虽然题设说有5个红眼睛,但岛民并不知道。 
一天,有一个旅行者来到岛上,当着所有人的面,
不留神说了一句:你们这里有红眼睛的人,岛民都听到了这句话。
假设岛民都是聪明人,问这个岛接下来会发生什么事情?






提示词遵循能力

You are an expert AI assistant tasked with providing thorough, step-by-step reasoning for complex problems or questions. Follow these guidelines:

1. For each step in your reasoning process:
   - Provide a clear, descriptive title
   - Explain your thought process in detail
   - Use markdown formatting for better readability

2. Use at least 3 different methods or approaches to analyze the problem

3. Include exploration of alternative answers and potential errors in your reasoning

4. Be aware of your limitations as a language model and explicitly state what you can and cannot do

5. When re-examining your reasoning, use a genuinely different approach

6. Apply best practices in problem-solving and critical thinking

7. Conclude with a final answer only when you've exhausted your analysis

8. Structure your response as follows:

```json
{
  "step": 1,
  "title": "Identifying Key Information",
  "content": "## Identifying Key Information\n\nTo begin solving this problem, we need to carefully examine the given information and identify the crucial elements that will guide our solution process. This involves...",
  "next_action": "continue"
}
```

9. For the final step, use "next_action": "final_answer" and include your conclusion

10. Strive for clarity, thoroughness, and intellectual honesty in your analysis

How many 'r's in strawberrrry?







🔥🔥🔥如有问题,请联系我的徽信 stoeng

🔥🔥🔥本项目代码由AI超元域频道制作,观看更多大模型微调视频请访问我的频道⬇

👉👉👉我的哔哩哔哩频道

👉👉👉我的YouTube频道

👉👉👉我的开源项目 https://github.com/win4r/AISuperDomain

import os
import pandas as pd
from datetime import datetime
from sqlalchemy import (
    create_engine,
    MetaData,
    Table,
    Column,
    String,
    Integer,
    Float,
    DateTime,
    ForeignKey,
    select,
    text
)
from llama_index.core import SQLDatabase
from llama_index.core.query_engine import NLSQLTableQueryEngine
from llama_index.llms.openai import OpenAI
from llama_index.llms.gemini import Gemini  


# 创建数据库引擎和元数据对象
engine = create_engine("sqlite:///:memory:")
metadata_obj = MetaData()

# 创建员工表
employees_table = Table(
    "employees",
    metadata_obj,
    Column("employee_id", String(10), primary_key=True),
    Column("name", String(50)),
    Column("department", String(50)),
    Column("position", String(50)),
    Column("hire_date", DateTime),
    Column("salary", Float),
    Column("manager_id", String(10), ForeignKey("employees.employee_id"))
)

# 创建产品表
products_table = Table(
    "products",
    metadata_obj,
    Column("product_id", String(10), primary_key=True),
    Column("name", String(100)),
    Column("category", String(50)),
    Column("unit_price", Float),
    Column("stock_quantity", Integer),
    Column("supplier", String(100))
)

# 创建订单表
orders_table = Table(
    "orders",
    metadata_obj,
    Column("order_id", String(20), primary_key=True),
    Column("customer_name", String(100)),
    Column("product_id", String(10), ForeignKey("products.product_id")),
    Column("employee_id", String(10), ForeignKey("employees.employee_id")),
    Column("order_date", DateTime),
    Column("quantity", Integer),
    Column("total_amount", Float),
    Column("status", String(20))
)

# 创建所有表
metadata_obj.create_all(engine)

def safe_read_csv(file_path, **kwargs):
    """安全地读取CSV文件,支持多种编码和错误处理"""
    encodings = ['utf-8', 'gbk', 'gb2312', 'utf-8-sig']
    
    for encoding in encodings:
        try:
            df = pd.read_csv(file_path, encoding=encoding, **kwargs)
            return df
        except Exception as e:
            print(f"尝试使用 {encoding} 编码: {str(e)}")
            continue
    raise ValueError(f"无法读取文件 {file_path}")

def check_table_exists(table_name):
    """检查表是否存在且有数据"""
    query = f"""
    SELECT COUNT(*) as count
    FROM {table_name}
    """
    try:
        with engine.connect() as conn:
            result = pd.read_sql(query, conn)
            return result['count'].iloc[0] > 0
    except Exception:
        return False

def clear_table(table_name):
    """清空指定表的所有数据"""
    with engine.connect() as conn:
        conn.execute(text(f"DELETE FROM {table_name}"))
        conn.commit()

def load_sample_data():
    """加载更多的示例数据到数据库"""
    # 示例员工数据
    employees_data = [
        {
            "employee_id": "E001",
            "name": "张三",
            "department": "销售部",
            "position": "销售经理",
            "hire_date": datetime(2020, 1, 15),
            "salary": 15000.0,
            "manager_id": None
        },
        {
            "employee_id": "E002",
            "name": "李四",
            "department": "销售部",
            "position": "销售代表",
            "hire_date": datetime(2021, 3, 1),
            "salary": 8000.0,
            "manager_id": "E001"
        },
        {
            "employee_id": "E003",
            "name": "王五",
            "department": "销售部",
            "position": "销售代表",
            "hire_date": datetime(2021, 6, 1),
            "salary": 8500.0,
            "manager_id": "E001"
        },
        {
            "employee_id": "E004",
            "name": "赵六",
            "department": "市场部",
            "position": "市场经理",
            "hire_date": datetime(2020, 3, 15),
            "salary": 14000.0,
            "manager_id": None
        },
        {
            "employee_id": "E005",
            "name": "钱七",
            "department": "市场部",
            "position": "市场专员",
            "hire_date": datetime(2022, 1, 10),
            "salary": 7500.0,
            "manager_id": "E004"
        }
    ]
    
    # 示例产品数据
    products_data = [
        {
            "product_id": "P001",
            "name": "高性能笔记本电脑",
            "category": "电子产品",
            "unit_price": 6999.0,
            "stock_quantity": 50,
            "supplier": "科技有限公司"
        },
        {
            "product_id": "P002",
            "name": "无线蓝牙耳机",
            "category": "配件",
            "unit_price": 999.0,
            "stock_quantity": 500,
            "supplier": "音频科技公司"
        },
        {
            "product_id": "P003",
            "name": "智能手机",
            "category": "电子产品",
            "unit_price": 4999.0,
            "stock_quantity": 200,
            "supplier": "科技有限公司"
        },
        {
            "product_id": "P004",
            "name": "显示器",
            "category": "电子产品",
            "unit_price": 2999.0,
            "stock_quantity": 80,
            "supplier": "显示技术公司"
        },
        {
            "product_id": "P005",
            "name": "机械键盘",
            "category": "配件",
            "unit_price": 599.0,
            "stock_quantity": 300,
            "supplier": "外设科技公司"
        }
    ]
    
    # 生成更多的订单数据
    orders_data = [
        {
            "order_id": "O20240101001",
            "customer_name": "陈一",
            "product_id": "P001",
            "employee_id": "E002",
            "order_date": datetime(2024, 1, 1),
            "quantity": 2,
            "total_amount": 13998.0,
            "status": "已完成"
        },
        {
            "order_id": "O20240102001",
            "customer_name": "刘二",
            "product_id": "P002",
            "employee_id": "E002",
            "order_date": datetime(2024, 1, 2),
            "quantity": 5,
            "total_amount": 4995.0,
            "status": "已完成"
        },
        {
            "order_id": "O20240115001",
            "customer_name": "张明",
            "product_id": "P003",
            "employee_id": "E003",
            "order_date": datetime(2024, 1, 15),
            "quantity": 3,
            "total_amount": 14997.0,
            "status": "已完成"
        },
        {
            "order_id": "O20240120001",
            "customer_name": "李明",
            "product_id": "P001",
            "employee_id": "E003",
            "order_date": datetime(2024, 1, 20),
            "quantity": 1,
            "total_amount": 6999.0,
            "status": "已完成"
        },
        {
            "order_id": "O20240125001",
            "customer_name": "王海",
            "product_id": "P004",
            "employee_id": "E002",
            "order_date": datetime(2024, 1, 25),
            "quantity": 4,
            "total_amount": 11996.0,
            "status": "处理中"
        }
    ]
    
    # 将数据转换为DataFrame并导入数据库
    employees_df = pd.DataFrame(employees_data)
    products_df = pd.DataFrame(products_data)
    orders_df = pd.DataFrame(orders_data)
    
    employees_df.to_sql('employees', engine, if_exists='append', index=False)
    products_df.to_sql('products', engine, if_exists='append', index=False)
    orders_df.to_sql('orders', engine, if_exists='append', index=False)
    
    print("示例数据加载成功!")


def setup_query_engine():
    """设置查询引擎,添加表关系描述"""
    sql_database = SQLDatabase(engine, include_tables=["employees", "products", "orders"])
    
    # 定义表关系和业务含义
    table_context = """
    表关系说明:
    1. employees(员工表):
       - employee_id: 员工ID,主键
       - manager_id: 上级主管ID,关联employee_id
       - 其他字段:name(姓名), department(部门), position(职位), hire_date(入职日期), salary(薪资)
    
    2. products(产品表):
       - product_id: 产品ID,主键
       - 其他字段:name(产品名), category(类别), unit_price(单价), stock_quantity(库存), supplier(供应商)
    
    3. orders(订单表):
       - order_id: 订单ID,主键
       - product_id: 产品ID,关联products表
       - employee_id: 销售员工ID,关联employees表
       - 其他字段:customer_name(客户名), order_date(订单日期), quantity(数量), total_amount(总金额), status(状态)
    
    关联关系:
    - orders.employee_id 关联 employees.employee_id (订单与销售员工关系)
    - orders.product_id 关联 products.product_id (订单与产品关系)
    - employees.manager_id 关联 employees.employee_id (员工与主管关系)
    """

    llm = Gemini(temperature=0.1,  model="models/gemini-exp-1206",)  # 可以根据需要更改模型
    # llm = OpenAI(temperature=0.1, model="gpt-4")

    query_engine = NLSQLTableQueryEngine(
        sql_database=sql_database,
        tables=["employees", "products", "orders"],
        llm=llm,
        table_context=table_context
    )

    return query_engine

def run_complex_queries():
    """执行复杂的多表联动查询示例"""
    query_engine = setup_query_engine()
    
    # 更新后的多表联动查询示例
    complex_queries = [
        # 销售业绩分析(明确区分employee表的自关联)
        """分析每个销售员(employees表)的业绩,显示他们的姓名、
           所属部门、主管姓名(通过manager_id关联查询),
           以及负责的订单数量和总销售额(通过orders表关联)""",
        
        # 产品销售趋势(明确时间范围)
        """分析2024年1月的产品销售情况,按产品类别统计
           销售额、销售数量,并显示负责销售的员工人数""",
        
        # 部门绩效分析(加入更多维度)
        """统计销售部的整体表现,包括:
           1. 部门总销售额
           2. 每个销售员的平均订单金额
           3. 按产品类别统计的销售分布""",
        
        # 高价值客户分析(避免列名歧义)
        """查找订单总金额超过10000元的客户信息,显示:
           1. 客户姓名
           2. 购买的产品名称和类别
           3. 负责销售的员工姓名和部门""",
        
        # 库存预警分析
        """分析库存量低于100的产品的销售情况,显示:
           1. 产品名称和当前库存
           2. 最近的销售记录
           3. 负责销售的员工信息"""
    ]

    for query in complex_queries:
        try:
            print("\n执行查询:", query)
            response = query_engine.query(query)
            print("查询结果:", response)
            print("\n" + "="*50)
        except Exception as e:
            print(f"查询执行错误: {str(e)}")


# 示例SQL实现(用于参考)
complex_sql_examples = {
    "销售业绩分析": """
    SELECT 
        e.name as employee_name,
        e.department,
        m.name as manager_name,
        COUNT(o.order_id) as order_count,
        SUM(o.total_amount) as total_sales
    FROM employees e
    LEFT JOIN employees m ON e.manager_id = m.employee_id
    LEFT JOIN orders o ON e.employee_id = o.employee_id
    GROUP BY e.employee_id, e.name, e.department, m.name
    """,
    
    "产品类别销售趋势": """
    SELECT 
        p.category,
        DATE_FORMAT(o.order_date, '%Y-%m') as month,
        SUM(o.total_amount) as monthly_sales,
        SUM(o.quantity) as total_quantity,
        COUNT(DISTINCT o.employee_id) as sales_staff_count
    FROM products p
    JOIN orders o ON p.product_id = o.product_id
    WHERE o.order_date >= DATE_SUB(NOW(), INTERVAL 3 MONTH)
    GROUP BY p.category, DATE_FORMAT(o.order_date, '%Y-%m')
    ORDER BY p.category, month
    """,
    
    "部门销售绩效": """
    SELECT 
        e.department,
        SUM(o.total_amount) as total_sales,
        AVG(o.total_amount) as avg_order_amount,
        COUNT(o.order_id) / COUNT(DISTINCT e.employee_id) as avg_orders_per_employee
    FROM employees e
    LEFT JOIN orders o ON e.employee_id = o.employee_id
    GROUP BY e.department
    """
}

def main():
    try:
        # 设置 OpenAI API 密钥
        # os.environ["OPENAI_API_KEY"] = userdata.get('OPENAI_API_KEY')
        os.environ["GEMINI_API_KEY"] = userdata.get('GEMINI_API_KEY')
        # 加载示例数据
        load_sample_data()

        # 运行复杂查询示例
        run_complex_queries()

    except Exception as e:
        print(f"主程序错误: {str(e)}")

if __name__ == "__main__":
    main()