-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy path.env.example
89 lines (78 loc) · 2.45 KB
/
.env.example
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
ACTUAL_SERVER_URL=http://actual_server:5006
ACTUAL_PASSWORD=
ACTUAL_BUDGET_ID=
CLASSIFICATION_SCHEDULE_CRON="0 */4 * * *"
NODE_TLS_REJECT_UNAUTHORIZED=0
# Feature flags - can be specified as an array
FEATURES='["freeWebSearch", "suggestNewCategories", "rerunMissedTransactions", "classifyOnStartup", "syncAccountsBeforeClassify"]'
# Tools and API keys
# ENABLED_TOOLS=webSearch
VALUESERP_API_KEY=
# LLM configuration
LLM_PROVIDER=openai
OPENAI_API_KEY=
OPENAI_MODEL=gpt-4o-mini
OPENAI_BASE_URL=https://api.openai.com/v1
ANTHROPIC_API_KEY=
ANTHROPIC_MODEL=claude-3-5-sonnet-latest
ANTHROPIC_BASE_URL=https://api.anthropic.com/v1
GOOGLE_GENERATIVE_AI_API_KEY=
GOOGLE_GENERATIVE_AI_MODEL=gemini-1.5-flash
GOOGLE_GENERATIVE_AI_BASE_URL=https://generativelanguage.googleapis.com
OLLAMA_MODEL=llama3.2
OLLAMA_BASE_URL=http://127.0.0.1:11434/api
NOT_GUESSED_TAG=#actual-ai-miss
GUESSED_TAG=#actual-ai
GROQ_API_KEY=
GROQ_MODEL=llama-3.3-70b-versatile
GROQ_BASE_URL=https://api.groq.com/openai/v1
PROMPT_TEMPLATE='
I want to categorize the given bank transaction.
Transaction details:
* Amount: {{amount}}
* Type: {{type}}
{{#if description}}
* Description: {{description}}
{{/if}}
{{#if payee}}
* Payee: {{payee}}
{{^}}
* Payee: {{importedPayee}}
{{/if}}
{{#if date}}
* Date: {{date}}
{{/if}}
Existing categories by group:
{{#each categoryGroups}}
GROUP: {{name}} (ID: "{{id}}")
{{#each categories}}
* {{name}} (ID: "{{id}}")
{{/each}}
{{/each}}
{{#if rules.length}}
Existing Rules:
{{#each rules}}
{{incIndex @index}}. {{ruleName}} → {{categoryName}}
Conditions: {{#each conditions}}{{field}} {{op}} {{value}}{{#unless @last}}, {{/unless}}{{/each}}
{{/each}}
{{/if}}
IMPORTANT: You MUST respond with ONLY a valid JSON object using this structure:
{
"type": "existing"|"new"|"rule",
"categoryId": "string", // Required for existing category or rule match
"ruleName": "string", // Required if matching rule
"newCategory": { // Required if suggesting new category
"name": "string",
"groupName": "string",
"groupIsNew": boolean
}
}
DO NOT output any text before or after the JSON. Your entire response must be a valid, parsable JSON object.
Examples:
{"type": "existing", "categoryId": "abc123"}
{"type": "rule", "categoryId": "def456", "ruleName": "Coffee Shop"}
{"type": "new", "newCategory": {"name": "Pet Supplies", "groupName": "Pets", "groupIsNew": true}}
{{#if hasWebSearchTool}}
You can use the web search tool to find more information about the transaction.
{{/if}}
'