给大模型装上手,通过 Function Calling 查询数据库:实现高效数据处理的新方式

大模型学习笔记三:Function Calling 官方文档:https://www.xfyun.cn/doc/spark/Web.html#_2-function-call%E8%AF%B4%E6%98%8E。1、只有 gpt-3.5-turbo-1106 和 gpt-4-1106-preview 可用本次课介绍的方法。2、gpt-3.5-turbo 是 gpt-3.5-turbo-1106 的别名。3、gpt-4 和 gpt-4-1106-preview 是两个不同的模型。3、延迟非常高(至少两次GPT-4生成,和一次Web API调用) 阅读详情

原创

在当今数字化时代,数据驱动决策已经成为企业发展的关键。随着数据库技术的不断发展,查询数据库的方式也在不断演变。传统的数据库查询方式虽然功能强大,但有时显得复杂和冗长。而Function Calling(函数调用)提供了一种更加简洁、高效的数据库查询方式。本文将介绍Function Calling查询数据库的原理、优势以及实际应用案例。

一、什么是Function Calling?

Function Calling,顾名思义,就是通过调用函数的方式来完成特定任务。在数据库查询中,Function Calling指的是将查询操作封装成函数,通过调用这些函数来完成数据库查询。与传统的SQL查询语句不同,Function Calling具有更高的可读性和复用性。

二、Function Calling查询数据库的优势
  1. 简洁明了:Function Calling将复杂的查询操作封装在函数内部,调用时只需简短的函数名称和参数,极大简化了查询语句。
  2. 高效复用:常用的查询操作可以封装成函数,方便在不同的项目或模块中复用,减少重复代码,提高开发效率。
  3. 易于维护:由于查询逻辑集中在函数内部,当需要修改查询逻辑时,只需更新函数定义,无需逐个修改所有使用到该查询的地方。
  4. 安全性高:通过预定义的函数进行数据库操作,可以有效防止SQL注入等安全问题,增强系统的安全性。
三、Function Calling查询数据库的实现

以Python为例,实现数据库查询:

# 导入必要的库
import openai
import os
from math import *
from icecream import ic
import jsonfrom math import *
import requestsimport logging
import sqlite3

# 设置日志记录配置
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')

# 加载 .env 文件
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())

# 从环境变量中获得你的 OpenAI Key
openai.api_key = os.getenv('OPENAI_API_KEY')
openai.api_base = os.getenv('OPENAI_API_URL')
model = os.getenv('MODEL')
amap_key = os.getenv('GAODE_MAP_API_KEY')

# 定义数据库表结构的字符串
database_schema_string = """
CREATE TABLE customers (
    id INT PRIMARY KEY NOT NULL, -- 主键,不允许为空    
    customer_name VARCHAR(255) NOT NULL, -- 客户名,不允许为空    
    email VARCHAR(255) UNIQUE, -- 邮箱,唯一    
    register_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP -- 注册时间,默认为当前时间
);
CREATE TABLE products (
    id INT PRIMARY KEY NOT NULL, -- 主键,不允许为空    
    product_name VARCHAR(255) NOT NULL, -- 产品名称,不允许为空    
    price DECIMAL(10,2) NOT NULL -- 价格,不允许为空
);
CREATE TABLE orders (
    id INT PRIMARY KEY NOT NULL, -- 主键,不允许为空    
    customer_id INT NOT NULL, -- 客户ID,不允许为空    
    product_id INT NOT NULL, -- 产品ID,不允许为空    
    price DECIMAL(10,2) NOT NULL, -- 价格,不允许为空    
    status INT NOT NULL, -- 订单状态,整数类型,不允许为空。0代表待支付,1代表已支付,2代表已退款    
    create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 创建时间,默认为当前时间    
    pay_time TIMESTAMP -- 支付时间,可以为空
);
"""
def get_sql_completion(messages, model=model):
    """    
    使用 OpenAI 的 Chat API 来生成完成的 SQL 查询语句。      
      
    参数:    
    - messages: 一个包含用户消息和系统消息的列表,用于上下文对话。    
    - model: 使用的 OpenAI 模型的名称,默认为环境变量中定义的模型。     
   
    返回:    
    - 生成的 SQL 查询语句。    
    """    
    response = openai.ChatCompletion.create(    
        model=model,        
        messages=messages,        
        temperature=0,  # 模型输出的随机性,0 表示随机性最小        
        tools=[{  # 摘自 OpenAI 官方示例 https://github.com/openai/openai-cookbook/blob/main/examples/How_to_call_functions_with_chat_models.ipynb        
            "type": "function",            
            "function": {             
                "name": "ask_database",                
                "description": "Use this function to answer user questions about business. \     
                            Output should be a fully formed SQL query.",#使用此功能可以回答用户有关业务的问题\输出应该是完全格式的SQL查询。                
                "parameters": {                  
                    "type": "object",                 
                    "properties": {                     
                        "query": {                       
                            "type": "string",                            
                            #SQL查询提取信息以回答用户的问题。SQL应该使用以下数据库架构编写:\                            
                            #查询应以纯文本形式返回,而不是以JSON形式返回。查询应该只包含SQLite支持的语法。                            
                            "description": f"""                            
                            SQL query extracting info to answer the user's question.                             
                            SQL should be written using this database schema:                            
                            {database_schema_string}                            
                            The query should be returned in plain text, not in JSON.                            
                            The query should only contain grammars supported by SQLite.                            
                            """,                        
                        }                    
                    },                    
                    "required": ["query"],               
                }            
            }        
        }],   
    )    
    return response.choices[0].message

# 创建内存中的SQLite数据库连接
conn = sqlite3.connect(':memory:')
cursor = conn.cursor()

# 执行数据库表创建语句
for statement in database_schema_string.split(';'): 
    cursor.execute(statement)

# 插入模拟数据
mock_data = [
    (1, 1001, 'TSHIRT_1', 50.00, 0, '2023-10-12 10:00:00', None),    
    (2, 1001, 'TSHIRT_2', 75.50, 1, '2023-10-16 11:00:00', '2023-08-16 12:00:00'),    
    (3, 1002, 'SHOES_X2', 25.25, 2, '2023-10-17 12:30:00', '2023-08-17 13:00:00'),    
    (4, 1003, 'HAT_Z112', 60.75, 1, '2023-10-20 14:00:00', '2023-08-20 15:00:00'),    
    (5, 1002, 'WATCH_X001', 90.00, 0, '2023-10-28 16:00:00', None)
]

for record in mock_data:
    cursor.execute('''\    
    INSERT INTO orders (id, customer_id, product_id, price, status, create_time, pay_time)    VALUES (?, ?, ?, ?, ?, ?, ?)    
    ''', record)
# 提交事务
conn.commit()

def ask_database(query):
    """    
    执行 SQL 查询并返回结果。    
        
    参数:    
    - query: 要执行的 SQL 查询语句。    
    -     
    - 返回:    - 查询结果。    
    """    
    cursor.execute(query)    
    records = cursor.fetchall()    
    return records

def test_promopt(): 
    """    
    测试通过自然语言询问来生成并执行 SQL 查询的功能。    
    """    
    prompt = "统计每月每件商品的销售额"    
    # prompt = "这星期消费最高的用户是谁?他买了哪些商品? 每件商品买了几件?花费多少?"    
    messages = [    
        {"role": "system", "content": "基于 order 表回答用户问题"},        
        {"role": "user", "content": prompt}    
    ]    
    response = get_sql_completion(messages)    
    print(response)    
    conn.close()

def test_promopt_result():
    """    
    测试自然语言询问的更复杂场景,包括对数据库操作的调用和日志记录。    
    """    
    prompt = "统计每月每件商品的销售额"    
    # prompt = "这星期消费最高的用户是谁?他买了哪些商品? 每件商品买了几件?花费多少?"    
    messages = [    
        {"role": "system", "content": "基于 order 表回答用户问题"},        
        {"role": "user", "content": prompt}    
    ]    
    response = get_sql_completion(messages)    
    if response.content is None:    
        response.content = "null"    
    messages.append(response)    
    logging.info("====Function Calling====")    
    logging.info(response)    
    
    if response.tool_calls is not None:    
        tool_call = response.tool_calls[0]        
        if tool_call.function.name == "ask_database":       
            arguments = tool_call.function.arguments            
            args = json.loads(arguments)            
            logging.info("====SQL====")            
            logging.info(args["query"])            
            result = ask_database(args["query"])            
            logging.info("====DB Records====")            
            logging.info(result)        
                
            messages.append({                
                "tool_call_id": tool_call.id,                
                "role": "tool",                
                "name": "ask_database",                
                "content": str(result)            
            })            
            response = get_sql_completion(messages)            
            logging.info("====最终回复====")            
            logging.info(response.content)    
    conn.close()


if __name__ == '__main__': 
   test_promopt_result()

输出:

2024-05-31 23:12:38,331 - INFO - ====Function Calling====
2024-05-31 23:12:38,332 - INFO - {
  "role": "assistant",  
  "content": "null",  
  "tool_calls": [  
    {   
      "id": "call_zhket5tQwLB9jGukvB2GpfMX",      
      "type": "function",      
      "function": {      
        "name": "ask_database",        
        "arguments": "{\"query\":\"SELECT strftime('%Y-%m', create_time) AS month, product_id, SUM(price) AS total_sales FROM orders WHERE status = 1 GROUP BY month, product_id;\"}"     
      }    
    }  
  ]
}
2024-05-31 23:12:38,334 - INFO - ====SQL====
2024-05-31 23:12:38,334 - INFO - SELECT strftime('%Y-%m', create_time) AS month, product_id, SUM(price) AS total_sales FROM orders WHERE status = 1 GROUP BY month, product_id;
2024-05-31 23:12:38,335 - INFO - ====DB Records====
2024-05-31 23:12:38,335 - INFO - [('2023-10', 'HAT_Z112', 60.75), ('2023-10', 'TSHIRT_2', 75.5)]
2024-05-31 23:12:41,284 - INFO - ====最终回复====
2024-05-31 23:12:41,285 - INFO - 每月每件商品的销售额统计如下:

- 2023年10月:
  - 商品ID:HAT_Z112,销售额:60.75  
  - 商品ID:TSHIRT_2,销售额:75.5

在以上示例中,通过调用函数实现了对数据库的查询。这样做不仅代码更加简洁易读,还方便了查询逻辑的复用和维护。

四、实际应用案例
  1. 电商平台的商品查询:在电商平台中,商品查询是非常频繁的操作。通过Function Calling,可以将不同条件的商品查询封装成函数,例如按价格区间、按分类、按销量排序等,大大提高了查询的灵活性和效率。

  2. 用户管理系统:在用户管理系统中,可以将用户的增删改查操作封装成函数,例如根据用户ID查询、按注册时间排序、批量删除用户等,使系统更易于维护和扩展。

  3. 数据分析系统:在数据分析系统中,常常需要对大量数据进行复杂查询和统计。通过Function Calling,可以将常用的统计分析操作封装成函数,例如按时间段统计销售额、按地区统计用户数量等,提高了数据处理的效率和准确性。

五、总结

Function Calling查询数据库作为一种新兴的技术手段,正在逐渐受到开发者的青睐。它不仅简化了数据库查询操作,提高了代码的可读性和复用性,还增强了系统的安全性和维护性。在未来,随着数据库技术的不断发展,相信Function Calling将会在更多领域发挥重要作用,助力企业实现更高效的数据处理和决策支持。

希望本文能够为大家提供一些有益的参考,让我们共同探索Function Calling的更多可能性,推动技术的进步和应用的发展。
​

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

OpenAI开发系列(十三):利用Function calling功能开发基于大模型的实时天气查询助手 本篇文章讲述了如何在OpenWeather注册并获取API key,同时解释了什么是外部工具API以及OpenWeatherAPI的基本介绍。之后,详解了OpenWeather API的使用方法,包括API功能说明、计费规则以及实时天气查询API的调用方法。在此基础上,展示了如何使用Function calling来实现Chat模型的实时天气查询,最后介绍了如何使用Few-shot提示来优化函数。此内容为实现Function calling调用外部工具API,具有参考和启发价值。 阅读详情

相关推荐

OpenAI开发系列(十一):Function calling功能的实际应用流程与案例解析

本文给出了Chat Completions模型中Function calling功能的背景,然后详细讲解了Function calling的实现过程。这包括如何构建Chat外部函数库,包括字符串形式、Json形式和函数形式的传入,还解释了如何定义functions,包括JSON与JSON Schema对象和构建外部函数的Json Schema描述。最后,对Function calling的功能实现进行了详细介绍,并对整个流程进行了总结,提供了全面且深入的理解和应用Function calling功能的指导。

无敌小怪兽_Zz的博客 8168

大模型开发 - 一文搞懂 Function Calling(函数调用)

自然语言接口(NLI)允许用户通过日常语言与软件和设备交互,无需特定命令或语法。

weixin_42029738的博客 3万+

从提示工程到智能体构建:大模型应用开发的实践路径与核心认知

在人工智能应用开发领域,大模型的应用正从传统的微调范式转向更高效的工程化路径。其核心原理在于通过自然语言与海量知识模型进行精确交互,这催生了一种新的编程范式——提示工程。该技术的核心价值在于,它能将大模型强大的生成能力有效约束到特定、可靠、可重复的业务输出轨道上,从而降低开发门槛并提升应用的可控性。在实际应用场景中,开发者通过系统化的提示设计、工具调用和流程编排,可以构建出具备感知、规划与执行能力的智能体,以处理复杂的多步骤任务。本文基于混元大模型的实践,深入探讨了从基础的提示词优化到高级的智能体构建这一完

weixin_33849215的博客 410

什么是Function Calling

Function Calling 是 OpenAI 在其 API 中引入的一项功能,允许开发者将大语言模型(如 GPT-4)与外部函数或工具集成。通过 Function Calling,模型可以理解用户请求并生成调用外部函数所需的参数,从而实现更复杂、更动态的任务处理

m0_48891301的博客 4246

Nemotron 3.5 Lightning与Perplexity Agent API:低成本构建AI Agent应用实战

大语言模型(LLM)通过API接口提供服务已成为AI应用开发的主流范式,其核心原理是将复杂的自然语言理解与生成能力封装为可编程的服务。这种模式的技术价值在于,它极大地降低了开发者集成先进AI能力的门槛,使得构建智能对话、内容生成等应用变得高效。然而,在实际工程实践中,开发者仍需面对模型选择、成本控制、工具调用(Function Calling)与任务编排(Task Planning)等挑战。应用场景广泛,从智能客服到数据分析助手,都需要模型不仅能理解指令,还能主动调用外部工具(如计算器、搜索API)来完成任

weixin_34221073的博客 502

LangChain框架解析:从RAG到Agent的大模型应用开发实战

大语言模型(LLM)作为当前人工智能的核心技术,其API调用虽简单,但构建具备记忆、检索与多步推理能力的复杂应用却面临挑战。这需要开发者编写大量‘胶水代码’来串联对话历史管理、私有知识库查询和工具调用等模块,开发效率低下。LangChain应运而生,它是一个开源框架,通过提供模型I/O、检索、链、代理、内存和回调六大标准化组件,将通用能力模块化。其设计遵循‘组合优于继承’的哲学,像乐高积木一样,让开发者能灵活组装这些组件,快速构建智能知识库问答(RAG)、自动化流程助手(Agent)等应用,从而让开发者更专

weixin_30562507的博客 407

大语言模型function calling的基本用法

定义各个工具函数,也就是具体要是实现的业务等信息。#天气return f'{city}的天气是多云'#温度return f'{city}的湿度是70%'#温度return f'{city}的温度是-10度'# 国旗的长和宽return f'旗帜面积是{width * length}'定义模型以及提示词"content": "你是一个天气查询小助手,你可以查询天气、湿度、温度"},"content": "一个旗帜的长是10.21cm,长度是20.23cm,面积说多少呢?

sinat_35153174的博客 1229

基于Spring AI与Vue的智能报价系统:从自然语言到精准报价单

在数字化转型浪潮中,自动化与智能化是提升企业运营效率的关键。传统报价流程依赖人工在多个Excel表格间查询与计算,不仅效率低下且易出错。其核心原理在于将非结构化的自然语言需求,通过自然语言处理(NLP)技术转化为结构化数据,再结合业务规则引擎进行自动化匹配与计算。这一技术价值在于打通了从客户询价到生成报价单的端到端自动化链路,显著降低了人力成本与错误率。典型的应用场景包括企业销售、采购及客户服务中的快速报价响应。本文以构建一个智能AI报价工作台为例,详细阐述了如何利用Spring AI集成大模型进行需求解析

weixin_30706691的博客 316

MCP(模型上下文协议)详细介绍

MCP(模型上下文协议)作为一种开放标准,为大型语言模型与外部世界的交互提供了统一的接口。它解决了数据孤岛问题,增强了数据安全性,并促进了开放生态的形成。通过MCP,AI应用能够更智能、更安全地访问和操作各种数据源和工具,从而提供更丰富、更实用的功能。虽然MCP仍处于发展早期,面临一些挑战,但其开放性和灵活性为AI应用的未来发展提供了广阔空间。随着更多开发者和企业的参与,MCP生态将不断壮大,为AI应用带来更多可能性。

Ds-Rag的博 1378

AutoGLM实战:从零构建数据分析AI Agent,实现大模型应用自动化

大模型应用开发正从对话交互迈向自动化任务执行,其核心在于智能体(Agent)与工具调用(Function Calling)技术的结合。智能体通过感知、规划、行动、反思的循环,能够自主调用外部工具完成复杂任务,这是大模型释放生产力的关键技术路径。其技术价值在于将大语言模型的认知能力与专业工具的执行能力无缝衔接,实现从“理解需求”到“产出结果”的端到端自动化。在数据分析、报告生成、流程自动化等场景中,这种模式能显著提升效率。本文以智谱AI开源的AutoGLM框架为例,深入解析如何通过统一接口与智能编排,快速构建

weixin_34236869的博客 427

从零搭建安全可控的AI Agent:核心原理、工具调用与工程实践

在大语言模型应用开发领域,智能体(Agent)正从单纯的对话交互走向具备自主规划与行动能力。其底层核心是Agent Loop——一个“思考-行动-观察”的循环机制,它让模型能够调用外部工具、读取结果并持续修正策略。Function Calling是连接模型与真实世界的“手”,但同时也带来安全边界、上下文膨胀、死循环等工程挑战。理解这些原理,并掌握超时控制、参数校验、权限隔离等实践技巧,是构建生产级Agent的关键。无论是做信息调研、自动化运维还是多Agent协作系统,都需要在自主性与可控性之间取得平衡。本文

weixin_34341117的博客 405

Spring AI实战:从零构建Java智能体Agent,实现自然语言数据查询

在人工智能技术快速发展的今天,大语言模型(LLM)与函数调用(Function Calling)的结合,为构建能够理解、推理并执行任务的智能体(Agent)提供了技术基础。其核心原理在于,LLM作为“大脑”负责解析用户意图和规划任务,而通过预定义的工具(Tool)作为“手脚”来执行具体的操作,如查询数据库或调用API,从而实现从自然语言到实际业务操作的自动化。这种模式的技术价值在于,它将AI的认知能力与现有系统的可靠执行相结合,极大地降低了AI应用的开发门槛。在应用场景上,智能体特别适用于需要复杂交互和自动

weixin_30781775的博客 487

OpenClaw用例库:30个开源AI落地案例解析与实战指南

在人工智能领域,从基础模型到实际应用之间往往存在巨大的鸿沟。其核心原理在于如何将通用的大语言模型(LLM)能力,通过工程化手段适配到具体的业务场景中,从而产生实际价值。这涉及到一系列关键技术,例如检索增强生成(RAG)用于解决模型知识陈旧与幻觉问题,以及函数调用(Function Calling)赋予模型执行具体操作的能力。这些技术的价值在于,它们能将前沿的AI研究转化为可部署、可维护的解决方案,广泛应用于智能客服、文档分析、知识库问答等场景。OpenClaw用例库正是这一趋势的集中体现,它通过30多个基于

weixin_34075268的博客 313

大模型语言模型gpt消息类型:系统消息system message、用户消息user message、助手消息assistant message、函数调用消息function message的区别

功能在实际应用中,这些消息类型共同协作,确保对话的顺畅和功能的实现。例如,系统消息设定了助手的基本行为,用户通过用户消息提出需求,助手通过助手消息进行响应,必要时通过函数调用消息与外部系统交互,以提供更全面和动态的服务。系统消息:设定模型的角色和行为规范。用户消息:用户输入的问题、指令或信息。助手消息:模型生成的回应,直接回答用户需求。函数调用消息:模型调用外部函数或API以完成特定任务。理解这些消息类型的区别,有助于更有效地设计和管理与大型语言模型的交互,提高对话的准确性和实用性。

Dontla的博客 3712

大模型应用开发实战:从RAG到Agent,7天掌握AI应用构建全流程

大语言模型(LLM)作为当前人工智能的核心技术,正从通用对话向解决特定领域问题演进。其核心原理在于通过检索增强生成(RAG)和智能体(Agent)两大范式,为模型赋予实时知识获取与自主行动能力。RAG通过“先检索,后生成”的机制,将外部知识库与模型生成相结合,有效解决了知识滞后与幻觉问题,是构建企业级知识问答系统的关键技术。Agent则通过“思考-行动-观察”的循环,使模型能够调用外部工具,完成复杂任务序列,实现了从“思考者”到“行动者”的跨越。这些技术的工程价值在于,它们能将前沿的AI能力低成本、高效率地

weixin_30819085的博客 357

从DDH到FastANI:原核生物分类黄金标准的进化史与技术对比

本文系统梳理了原核生物分类标准从DDH到FastANI的四次技术革命,详细解析了95%相似度阈值的科学依据及应用场景。通过对比DDH、16S rRNA、ANI和FastANI的技术特点与性能指标,为微生物研究者提供基因组分类的实战指南,并展望第三代测序时代的分类新挑战。

weixin_29275257的博客 413

用单个LLM替代复杂Agent图:基于工具调用的智能体架构实践

在AI应用开发中,Agent Graph(智能体图)是一种将复杂任务分解为多个独立节点工作流的经典架构,它通过模块化设计实现逻辑清晰,但同时也带来了高昂的开发和维护成本。其核心原理在于将流程控制硬编码到各个节点中,导致系统僵化且难以适应变化。随着大语言模型(LLM)推理能力的提升,一种新的技术范式正在兴起:将LLM作为中央推理与调度引擎,通过Function Calling(函数调用)和ReAct(推理-行动)模式,动态决策和执行任务。这种架构的技术价值在于极大提升了系统的灵活性和开发效率,允许开发者通过修

weixin_34343308的博客 358

gRPC之gRPC开发流程与入门案例

gRPC之gRPC开发流程与入门案例

YIYIYI 3759

Java 开发者转型大模型应用实战评测

很多开发者在接触大模型应用开发时,往往陷入一种“调包侠”的误区:觉得只要调用了 API,拼凑几个提示词,就能立刻得到一个智能助手。然而,当真正着手将大语言模型(LLM)落地到具体业务场景,尤其是构建检索增强生成(RAG)系统或智能体(Agent)时,才会发现从 Demo 到生产环境的距离远比想象中遥远。数据怎么存?检索不准怎么办?上下文窗口不够用如何权衡?本地部署的成本是否可控?这些问题如果缺乏系统的工程化思维,很容易导致项目半途而废。这篇文章正是为了解决这些实际痛点而生。

2601_96189255的博客 1106

【Cadence】PSS+PSTB/PAC仿真在开关电源稳定性分析中的关键应用

本文深入探讨了Cadence仿真工具中PSS+PSTB/PAC方法在开关电源稳定性分析中的关键应用。针对开关电源作为时变非线性系统的特性,传统STB仿真方法会失效。文章详细阐述了如何通过PSS分析找到周期稳态,并在此基础上利用PSTB或PAC进行精确的环路增益和小信号频响分析,为电源设计提供可靠的稳定性评估与补偿网络设计依据。

weixin_29276847的博客 527

如何计算 R 中的基尼系数(附示例)

以意大利统计学家Corrado Gini命名,基尼系数是衡量人口收入分配的一种方法。基尼系数的值在 0 到 1 之间,值越高代表收入不平等越大,其中:0代表完全的收入平等(每个人的收入都一样) 1代表完全的收入不平等(一个人拥有所有收入) 您可以在此处找到按国家/地区列出的基尼系数列表。以下示例显示了使用DescTools包中的Gini()函数计算 R 中的基尼系数的两种方法。示例 1:使用个人收入计算基尼系数假设我们有以下 10 个人的年收入列表:收入:5 万美元、5 万美元、7 万美元、7 万美元、7

Mrrunsen的博客 2991
上一篇: 大模型在企业中应用的挑战与OpenAI Function Calling的实践
下一篇: 探究大模型微调 Lora 的不同形态(上篇): AdaLora、 AsLora、 PiSSA、 DoRA
AI_小站
博客等级 码龄3年 6255粉丝 1152原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值