# LLM Provider Integration
yCrash integrates with the below mentioned LLM providers.
Note
AI is available from three dedicated entry points: Deterministic AI in GCeasy (opens new window), Deterministic AI in FastThread (opens new window), and Dive Deeper in AI Mode (opens new window) in the AI Overview section of the RCA report.
All three open an interactive AI chat session backed by a configured Large Language Model (LLM). Without a valid API key and ycbuddy-config.json file, AI features stay disabled.
This guide is written for operations, platform, and functional teams - you do not need to be a developer to complete the setup.
# 1. Google Gemini
yCrash offers AI-powered analysis using Google Gemini. To configure Gemini as your LLM provider, follow the instructions provided here.
# 2. OpenAI
yCrash offers AI-powered analysis using OpenAI. To configure OpenAI as your LLM provider, follow the instructions provided here.
# 3. Azure OpenAI
yCrash offers AI-powered analysis using Azure OpenAI. To configure Azure OpenAI as your LLM provider, follow the instructions provided here.
# 4. Anthropic Claude
yCrash offers AI-powered analysis using Anthropic Claude. To configure Claude as your LLM provider, follow the instructions provided here.
# 5. GitHub Copilot
yCrash offers AI-powered analysis using a shared GitHub Copilot seat. To configure GitHub Copilot as your LLM provider, follow the instructions provided here.
# Before You Begin
Ensure the following:
| Requirement | Why it matters |
|---|---|
| An account with your chosen LLM provider | You need access to that provider's developer console to create an API key |
| A valid API key from that provider | yCrash uses this key to call the provider on your behalf |
| Access to the yCrash server host | You will place a small configuration file on the server |
| The yCrash upload directory (opens new window) path | This is where the configuration file must live |
# Quick Overview: What Happens Behind the Scenes
When configured correctly, yCrash:
- Reads a file named
ycbuddy-config.jsonat server startup - Uses your API key to connect to the configured LLM provider
- Powers chat responses, semantic search over yCrash knowledge content, and optional file analysis in AI chat
The same API key is used for:
- Chat responses (the model you choose, e.g.
gemini-2.5-flash) - Semantic search / context retrieval (the embedding model, e.g.
gemini-embedding-001) - File uploads in AI chat (when users attach diagnostic files), unless the provider has no Files API (see GitHub Copilot)
# Place the Configuration File on the yCrash Server
Create a plain text file named exactly:
ycbuddy-config.json
The name is case-sensitive and mandatory. yCrash looks for this exact filename; any other name will not work.
Place ycbuddy-config.json in the yCrash upload directory.
The upload directory is the folder yCrash uses to store uploaded diagnostics and server-side configuration. It is set when the JVM starts with a system property:
-DuploadDir=/path/to/your/upload/folder
Example paths:
| Environment | Example upload directory |
|---|---|
| Linux server | /opt/ycrash/uploads |
| Windows server | C:\ycrash\uploads |
Ask your yCrash administrator or check your server startup script / service definition for the -DuploadDir=... value if you are unsure.
Final file location:
<uploadDir>/ycbuddy-config.json
Example: if -DuploadDir=/opt/ycrash/uploads, the full path is:
/opt/ycrash/uploads/ycbuddy-config.json
# Alternate locations (for reference)
yCrash may also pick up the file from the application classpath or the server's working directory, but the upload directory is the supported location for production deployments. Always use <uploadDir>/ycbuddy-config.json unless your runbook says otherwise.
# Optional: API key via environment variable
If you prefer not to store the API key in the JSON file, you can omit llmApiKey and set an environment variable on the yCrash process instead:
LLM_API_KEY=your-api-key
All other fields (llmProvider, llmModelName, llmEmbeddingModelName) are still required in the JSON file. Provider-specific environment variables are documented on each provider page.
# Restart yCrash and Verify
Configuration is read when the yCrash application starts. After creating or editing ycbuddy-config.json:
- Save the file
- Restart the yCrash server (or redeploy the application)
- Watch the server logs during startup
# What success looks like in logs
Look for messages similar to:
Found ycbuddy-config.json in uploadDir - /path/to/uploads/ycbuddy-config.jsonYCBuddy configuration loaded successfully.- A provider-specific client initialization message (see each provider page)
# What failure looks like
| Symptom | Likely cause |
|---|---|
| AI buttons greyed out or missing | Config file not found, or required fields empty |
Log: ycbuddy-config.json file not found | File not in upload directory, or wrong filename |
Log: LLM API key is required but not configured | Missing llmApiKey and no LLM_API_KEY env var |
Log: Unsupported LLM provider | Typo in llmProvider (must match a supported value exactly) |
| Chat opens but returns auth / 403 errors | Invalid, expired, or revoked API key; or billing not enabled at the provider |
# Functional verification (no log access needed)
- Open a report that supports AI (GCeasy / FastThread Deterministic AI, or RCA Dive Deeper in AI Mode)
- Confirm the AI entry point is visible and clickable
- Ask a simple question (e.g. Summarize the top GC issue in this report)
- Confirm you receive a streaming response within a reasonable time (typically seconds, depending on report size)
# Required Fields Summary
| Property | Description |
|---|---|
llmProvider | AI provider. Accepted values: "gemini", "openai", "azure-openai", "claude" / "anthropic", "copilot". |
llmApiKey | API key / token used to authenticate with the provider. |
llmModelName | Model used to generate AI chat responses. |
llmEmbeddingModelName | Embedding model used for semantic search and context retrieval. |
llmMaxOutputTokens | Optional. Soft cap on completion tokens (default 4096). Especially important for OpenAI GPT-5.x and Claude. |
llmReasoningEffort | Optional. Reasoning / effort for OpenAI GPT-5.x / o-series and Claude Sonnet 4.6+ (default "none"). |
Note:
If any required field is missing or empty, yCrash disables AI and logs a configuration error at startup.
# Troubleshooting Checklist
Use this checklist before opening a support ticket:
- File is named exactly
ycbuddy-config.json - File is in the directory specified by
-DuploadDir(not a subdirectory) - JSON is valid (no trailing commas, double-quoted keys and values)
llmProvidermatches a supported value exactly (lowercase)- API key is complete, not expired, and has access at the provider
- yCrash server was restarted after the file was added or changed
- Server logs show successful YCBuddy / LLM client initialization
- Outbound HTTPS from the yCrash server to the provider is allowed by your firewall
Provider-specific checks (billing, hostnames, token types) are listed on each provider page.
# Security and Compliance Notes
- The API key in
ycbuddy-config.jsonis a live credential. Apply OS-level file permissions so only the yCrash service account can read it. - Diagnostic data from reports may be sent to the LLM provider as part of AI analysis. Review your organization's data-processing policy before enabling AI in regulated environments.
- Usage is billed by your chosen provider, not by yCrash. Monitor API usage in that provider's console.
- yCrash can optionally enforce monthly usage quotas per user tier via additional settings in the same config file (
quotaEnabled, etc.). Contact your yCrash administrator if limits are required.
# Related Documentation
- yCrash upload directory (opens new window) (server startup /
-DuploadDir) - GCeasy Deterministic AI
- FastThread Deterministic AI
- RCA Dive Deeper in AI Mode (opens new window)