You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何优化FinguAI模型生成理财建议的提示词工程?

个人理财应用模型输出优化问题

问题概述

我正在开发一款个人理财应用,采用FinguAI语言模型,基于用户提供的支出数据生成个性化理财洞察与建议。但目前模型输出存在三类核心问题:数据不准确、遗漏关键分析细节、给出非定制化的通用建议。

已尝试的优化措施

  • 简化输入数据并将其格式化为JSON格式
  • 迭代测试多种提示词,明确指令要求与期望输出格式
  • 调整生成参数(temperature、top-p)

尽管实施了以上方案,模型响应的问题仍未得到解决。

实现代码

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, TextStreamer
import pandas as pd
from datetime import datetime, timedelta
import random
import json

# 定义支出类别
categories = ["Groceries", "Utilities", "Entertainment", "Transport", "Rent", "Miscellaneous"]

# 生成模拟数据(后续替换为真实用户数据)
data = []
for i in range(30):
    date = (datetime.now() - timedelta(days=i)).strftime("%Y-%m-%d")
    category = random.choice(categories)
    amount = round(random.uniform(100, 1000), 2)  # 可调整金额范围以贴近真实场景
    description = f"{category} expense"
    data.append([date, category, amount, description])

df = pd.DataFrame(data, columns=["Date", "Category", "Amount", "Description"])
category_totals = df.groupby('Category')['Amount'].sum().to_dict()

# --- 可配置变量 ---
monthly_income = 5000  # 替换为用户实际月收入(单位:₹)
# --- 配置结束 ---

# 格式化支出数据用于提示词
category_totals_string = "\n".join([f"- {category}: ₹{amount:.2f}" for category, amount in category_totals.items()])

# 加载模型与分词器
model_id = 'FINGU-AI/FinguAI-Chat-v1'
model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype=torch.bfloat16)
tokenizer = AutoTokenizer.from_pretrained(model_id)
streamer = TextStreamer(tokenizer)
model.to('cuda')  # 若有GPU则移至GPU运行

# 构建优化后的提示词模板
prompt_template = """你是印度地区的理财顾问,正在分析一位月收入₹{income}用户的月度支出,用户目标是改善财务健康状况。

请分析以下支出数据(单位:₹):

{expenses_string}

需提供个性化洞察与可执行建议,重点覆盖:
1. 支出最高的2个类别,针对每个类别给出2-3条具体、可落地的缩减方案;
2. 支出最低的类别,判断是否需要调整;
3. 结合收入与支出,制定合理的月度储蓄目标;
4. 整体财务健康评估,包括优势、劣势与潜在风险。
"""

prompt = prompt_template.format(income=monthly_income, expenses_string=category_totals_string)

# 输入分词处理
tokenized_chat = tokenizer.apply_chat_template([{"role": "user", "content": prompt}], tokenize=True, add_generation_prompt=True, return_tensors="pt").to("cuda")

# 设置生成参数
generation_params = {
    'max_new_tokens': 250,
    'use_cache': True,
    'do_sample': True,
    'temperature': 0.7,
    'top_p': 0.95,
    'top_k': 50,
    'eos_token_id': tokenizer.eos_token_id,
}

# 生成理财洞察
outputs = model.generate(tokenized_chat, **generation_params, streamer=streamer)
decoded_outputs = tokenizer.batch_decode(outputs)

print(decoded_outputs[0])

模型输出示例

用户月度支出数据评估:

  1. 娱乐(Entertainment):该类别支出显著,约为1013.13印度卢比(原文标注错误为“姬ar Rupee ($)”)。可通过选择符合个人兴趣的低成本休闲活动缩减支出,例如订阅Netflix或逛本地市场作为替代。此外,合理分配娱乐预算可平衡生活品质与财务目标,需定期追踪支出以确保符合财务规划。2. 食品杂货(Groceries):支出约为2590.55印度卢比(原文标注错误为“姬ar Rupee ($)”)。可采用按比例分配预算的方式缩减开支,例如每月分配50印度卢比用于采购[输出不完整]

内容的提问来源于stack exchange,提问作者Ramesh Adhikari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 04:54:52