Java Integration and API Documentation

Overview
Knowledge Agents provides robust Java integration capabilities, allowing developers to seamlessly embed AI-powered knowledge solutions into Java-based applications and systems. Whether you're building enterprise applications, web services, or backend systems, our Java SDK and REST APIs enable quick integration of Knowledge Bar, Knowledge Bubble, and Knowledge Page components.
Java SDK
Installation
The Knowledge Agents Java SDK is available through Maven Central Repository. Add the following dependency to your pom.xml file:
![]()
<dependency>
<groupId>com.knowledgeagents</groupId>
<artifactId>knowledge-agents-sdk</artifactId>
<version>1.0.0</version>
</dependency>
For Gradle projects, add this to your build.gradle:
dependencies {
implementation 'com.knowledgeagents:knowledge-agents-sdk:1.0.0'
}
Quick Start
Initialize the Knowledge Agents client with your API credentials:
import com.knowledgeagents.sdk.KnowledgeAgentsClient;
import com.knowledgeagents.sdk.config.KnowledgeAgentsConfig;
KnowledgeAgentsConfig config = new KnowledgeAgentsConfig.Builder()
.apiKey("your-api-key")
.apiSecret("your-api-secret")
.build();
KnowledgeAgentsClient client = new KnowledgeAgentsClient(config);
Core Components
Knowledge Bar
The Knowledge Bar is a search-enabled widget that provides instant answers from your business content. Integrate it into your Java application using the SDK:
import com.knowledgeagents.sdk.components.KnowledgeBar;
KnowledgeBar knowledgeBar = client.createKnowledgeBar()
.withTitle("Search Our Knowledge Base")
.withPlaceholder("Ask a question...")
.withTheme("light")
.build();
String htmlEmbed = knowledgeBar.getEmbedCode();
Knowledge Bubble
The Knowledge Bubble offers contextual help and support through a floating widget. Deploy it with:
import com.knowledgeagents.sdk.components.KnowledgeBubble;
KnowledgeBubble bubble = client.createKnowledgeBubble()
.withPosition("bottom-right")
.withInitialMessage("How can we help?")
.withAutoOpen(true)
.withDelay(5000) // milliseconds
.build();
Knowledge Page
The Knowledge Page provides a comprehensive help center experience. Create and customize it:
import com.knowledgeagents.sdk.components.KnowledgePage;
KnowledgePage page = client.createKnowledgePage()
.withTitle("Help Center")
.withDescription("Find answers to common questions")
.withLayout("grid")
.withCategories(true)
.build();
REST API Integration
For applications that prefer direct HTTP communication, Knowledge Agents provides comprehensive REST APIs accessible from Java applications.
Authentication
All API requests require authentication using your API key:
import javax.net.ssl.HttpsURLConnection;
import java.net.URL;
URL url = new URL("https://api.knowledgeagents.com/v1/queries");
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setRequestProperty("Authorization", "Bearer " + apiKey);
conn.setRequestProperty("Content-Type", "application/json");
Query Endpoint
Submit queries to get instant answers from your knowledge base:
import org.json.JSONObject;
import java.io.OutputStream;
JSONObject requestBody = new JSONObject();
requestBody.put("query", "How do I reset my password?");
requestBody.put("context", "account");
conn.setRequestMethod("POST");
conn.setDoOutput(true);
try (OutputStream os = conn.getOutputStream()) {
byte[] input = requestBody.toString().getBytes("utf-8");
os.write(input, 0, input.length);
}
int responseCode = conn.getResponseCode();
// Handle response
Lead Capture
Capture leads directly through your Java application:
JSONObject leadData = new JSONObject();
leadData.put("email", "customer@example.com");
leadData.put("name", "John Doe");
leadData.put("company", "Acme Corp");
leadData.put("source", "knowledge-bar");
URL leadUrl = new URL("https://api.knowledgeagents.com/v1/leads");
HttpsURLConnection leadConn = (HttpsURLConnection) leadUrl.openConnection();
leadConn.setRequestMethod("POST");
leadConn.setRequestProperty("Authorization", "Bearer " + apiKey);
leadConn.setRequestProperty("Content-Type", "application/json");
leadConn.setDoOutput(true);
try (OutputStream os = leadConn.getOutputStream()) {
byte[] input = leadData.toString().getBytes("utf-8");
os.write(input, 0, input.length);
}
Advanced Usage
Custom Theming
Customize the appearance of Knowledge Agents components to match your brand:
import com.knowledgeagents.sdk.styling.Theme;
Theme customTheme = new Theme.Builder()
.primaryColor("#0066cc")
.backgroundColor("#ffffff")
.textColor("#333333")
.borderRadius("8px")
.fontFamily("Inter, sans-serif")
.build();
knowledgeBar.applyTheme(customTheme);
Event Handling
Listen to events from Knowledge Agents components:
import com.knowledgeagents.sdk.events.KnowledgeAgentsEventListener;
knowledgeBar.addEventListener(new KnowledgeAgentsEventListener() {
@Override
public void onQuerySubmitted(String query) {
System.out.println("User queried: " + query);
}
@Override
public void onAnswerProvided(String answer) {
System.out.println("Answer provided: " + answer);
}
@Override
public void onLeadCaptured(Lead lead) {
// Handle lead capture
}
});
Analytics and Tracking
Track user interactions and gather insights:
import com.knowledgeagents.sdk.analytics.AnalyticsClient;
AnalyticsClient analytics = client.getAnalytics();
// Track custom events
analytics.trackEvent("knowledge-search", new java.util.HashMap<String, Object>() {{
put("query", "pricing");
put("user_id", "user123");
put("timestamp", System.currentTimeMillis());
}});
Best Practices
Error Handling
Implement robust error handling in your Java integration:
try {
KnowledgeBar bar = client.createKnowledgeBar().build();
} catch (KnowledgeAgentsException e) {
System.err.println("Failed to create Knowledge Bar: " + e.getMessage());
// Implement fallback logic
} catch (AuthenticationException e) {
System.err.println("Authentication failed. Check your credentials.");
}
Connection Pooling
For high-volume applications, use connection pooling:
import com.knowledgeagents.sdk.http.ConnectionPoolConfig;
ConnectionPoolConfig poolConfig = new ConnectionPoolConfig.Builder()
.maxConnections(50)
.maxConnectionsPerRoute(10)
.connectionTimeout(5000) // milliseconds
.socketTimeout(30000)
.build();
KnowledgeAgentsConfig config = new KnowledgeAgentsConfig.Builder()
.apiKey("your-api-key")
.connectionPoolConfig(poolConfig)
.build();
Caching Responses
Improve performance by caching knowledge base responses:
import com.knowledgeagents.sdk.cache.CacheConfig;
CacheConfig cacheConfig = new CacheConfig.Builder()
.enabled(true)
.ttlSeconds(3600)
.maxSize(1000)
.build();
KnowledgeAgentsConfig config = new KnowledgeAgentsConfig.Builder()
.apiKey("your-api-key")
.cacheConfig(cacheConfig)
.build();
Integration with Popular Java Frameworks
Spring Boot
Integrate Knowledge Agents into your Spring Boot application:
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Bean;
@Configuration
public class KnowledgeAgentsConfig {
@Bean
public KnowledgeAgentsClient knowledgeAgentsClient() {
return new KnowledgeAgentsClient(
new KnowledgeAgentsConfig.Builder()
.apiKey("${knowledge.agents.api.key}")
.apiSecret("${knowledge.agents.api.secret}")
.build()
);
}
}
Dependency Injection
import org.springframework.beans.factory.annotation.Autowired;
@Service
public class SupportService {
@Autowired
private KnowledgeAgentsClient knowledgeAgentsClient;
public String getAnswer(String query) {
// Use the client
}
}
Troubleshooting
Common Issues
Issue: Authentication Failures
- Verify your API key and secret are correct
- Ensure your credentials are stored securely (use environment variables)
- Check that your API key hasn't expired
Issue: Slow Response Times
- Enable caching to reduce API calls
- Use connection pooling for better performance
- Consider using the SDK's built-in retry mechanism with exponential backoff
Issue: Component Not Rendering
- Verify the embed code is placed correctly in your HTML
- Check browser console for JavaScript errors
- Ensure your domain is whitelisted in Knowledge Agents settings
Support and Resources
- API Documentation: https://knowledgeagents.com/docs/api
- GitHub Repository: https://github.com/knowledgeagents/java-sdk
- Community Forum: https://community.knowledgeagents.com
- Email Support: support@knowledgeagents.com
Version History
| Version | Release Date | Notes | |---------|--------------|-------| | 1.0.0 | 2024-01-15 | Initial release with core components | | 1.1.0 | 2024-02-20 | Added analytics and event tracking | | 1.2.0 | 2024-03-10 | Enhanced caching and performance improvements |
Security Considerations
- Always use HTTPS for all API communications
- Store API credentials in environment variables, never hardcode them
- Implement rate limiting to prevent abuse
- Regularly rotate your API keys
- Keep the SDK updated to receive security patches
Performance Tips
- Batch multiple queries together when possible
- Use caching strategically to reduce API calls
- Implement pagination for large result sets
- Monitor API usage through your Knowledge Agents dashboard
- Consider using asynchronous calls for non-blocking operations
import java.util.concurrent.CompletableFuture;
CompletableFuture<String> answer = client.queryAsync("How does pricing work?")
.thenApply(response -> response.getAnswer())
.exceptionally(ex -> {
System.err.println("Query failed: " + ex.getMessage());
return "Unable to retrieve answer at this time.";
});
With Knowledge Agents' Java integration, you can deploy powerful AI-driven support and sales tools in minutes, without requiring extensive coding expertise. The platform handles the complexity while you focus on delivering exceptional customer experiences.