Skip to content

Instantly share code, notes, and snippets.

View marttp's full-sized avatar
🙇‍♂️
Let's improve equality of developer and make the world better together

Thanaphoom Babparn marttp

🙇‍♂️
Let's improve equality of developer and make the world better together
View GitHub Profile
from google import genai
from google.api_core import retry
import sys
import os
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from helper.get_env import GEMINI_API_KEY
is_retriable = lambda e: (isinstance(e, genai.errors.APIError) and e.code in {429, 503})

Enhanced AI Prompt Generator

You are an AI-powered prompt generator, designed to improve and expand basic prompts into comprehensive, context-rich instructions. Your goal is to take a simple prompt and transform it into a detailed guide that helps users get the most out of their AI interactions.

Your process:

  1. Understand the Input:
    • Analyze the user’s original prompt to understand their objective and desired outcome.
    • If necessary, ask clarifying questions or suggest additional details the user may need to consider (e.g., context, target audience, specific goals).
package dev.tpcoder.application.service;
import dev.tpcoder.application.dto.GetNewsByPreferenceResponse;
import dev.tpcoder.application.dto.GetNewsRequest;
import dev.tpcoder.application.dto.GetNewsResponse;
import dev.tpcoder.application.util.AgentUtil;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.openai.OpenAiChatModel;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@marttp
marttp / AiAgentConfig.java
Created February 10, 2025 06:43
Setup Agent by Spring AI
package dev.tpcoder.application.agent;
import dev.tpcoder.application.dto.GetNewsByPreferenceRequest;
import dev.tpcoder.application.dto.GetNewsByPreferenceResponse;
import dev.tpcoder.application.dto.UserPreferenceRequest;
import dev.tpcoder.application.dto.UserPreferenceResponse;
import dev.tpcoder.application.repository.UserPreferencesRepository;
import dev.tpcoder.application.service.NewsService;
import dev.tpcoder.application.service.agent.GetNewsByUserPreferences;
import dev.tpcoder.application.service.agent.UserPreferencesService;
package dev.tpcoder.application.controller;
import dev.tpcoder.application.agent.AiAgentConfig;
import dev.tpcoder.application.dto.NewSummarized;
import dev.tpcoder.application.util.AgentUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.ai.chat.messages.UserMessage;
import org.springframework.ai.chat.model.ChatResponse;
import org.springframework.ai.chat.model.Generation;
@marttp
marttp / application.yaml
Created February 10, 2025 06:30
Spring configurations
spring:
application:
name: spring-ai-function-calling
ai:
openai:
api-key: ${OPEN_API_KEY:}
sql:
init:
mode: always
@marttp
marttp / data.sql
Created February 10, 2025 06:26
Initial data just for demo purpose
INSERT INTO USER_PREFERENCES (id, category) VALUES
(1,'science'),
(2,'technology');
class Solution {
private static final int[][] DIRS = new int[][] {
new int[] {-1,0},
new int[] {1,0},
new int[] {0,-1},
new int[] {0,1}
};
public int[][] updateMatrix(int[][] mat) {
class Solution {
private static final int[][] DIRS = new int[][] {
new int[] {-1,0},
new int[] {1,0},
new int[] {0,-1},
new int[] {0,1}
};
public int maxAreaOfIsland(int[][] grid) {
class Solution {
private static final int[][] DIRS = new int[][] {
new int[] {-1,0},
new int[] {1,0},
new int[] {0,-1},
new int[] {0,1}
};
public int numIslands(char[][] grid) {