Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions app/api/chat/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -171,8 +171,10 @@ export async function POST(req: NextRequest) {
providerOptions: {
openai: {
parallelToolCalls: false,
reasoningSummary: "detailed",
reasoningEffort: "medium",
...(mode === "agent" && {
reasoningSummary: "detailed",
reasoningEffort: "medium",
}),
},
},
headers: getAIHeaders(),
Expand Down
5 changes: 3 additions & 2 deletions convex/messages.ts
Original file line number Diff line number Diff line change
Expand Up @@ -213,10 +213,11 @@ export const getMessagesByChatId = query({
page: enhancedMessages,
};
} catch (error) {
// Handle chat not found error gracefully - return empty results without logging
// Handle chat access errors gracefully - return empty results without logging
if (
error instanceof ConvexError &&
error.data?.code === "CHAT_NOT_FOUND"
(error.data?.code === "CHAT_NOT_FOUND" ||
error.data?.code === "CHAT_UNAUTHORIZED")
) {
return {
page: [],
Expand Down
10 changes: 5 additions & 5 deletions lib/ai/providers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@ import PostHogClient from "@/app/posthog";

const baseProviders = {
"ask-model": openrouter(
process.env.NEXT_PUBLIC_ASK_MODEL || "deepseek/deepseek-chat-v3-0324",
process.env.NEXT_PUBLIC_ASK_MODEL || "deepseek/deepseek-chat-v3.1",
),
"agent-model": openai(process.env.NEXT_PUBLIC_AGENT_MODEL || "gpt-5-mini"),
"vision-model": openrouter(
process.env.NEXT_PUBLIC_VISION_MODEL || "google/gemini-2.5-flash",
"vision-model": openai(
process.env.NEXT_PUBLIC_VISION_MODEL || "gpt-4.1-2025-04-14",
),
"title-generator-model": openrouter(
process.env.NEXT_PUBLIC_TITLE_MODEL || "google/gemini-2.5-flash",
"title-generator-model": openai(
process.env.NEXT_PUBLIC_TITLE_MODEL || "gpt-4.1-mini-2025-04-14",
),
};

Expand Down
12 changes: 7 additions & 5 deletions lib/chat/chat-processor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -99,12 +99,14 @@ export async function processChatMessages({
const executionMode: ExecutionMode =
(process.env.TERMINAL_EXECUTION_MODE as ExecutionMode) || "local";

// Check moderation for the last user message
const moderationResult = await getModerationResult(messagesWithUrls);
if (isPro) {
// Check moderation for the last user message
const moderationResult = await getModerationResult(messagesWithUrls, isPro);

// If moderation allows, add authorization message
if (moderationResult.shouldUncensorResponse) {
addAuthMessage(messagesWithUrls);
// If moderation allows, add authorization message
if (moderationResult.shouldUncensorResponse) {
addAuthMessage(messagesWithUrls);
}
}

return {
Expand Down
5 changes: 4 additions & 1 deletion lib/moderation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ const MODERATION_CHAR_LIMIT = 1000;

export async function getModerationResult(
messages: any[],
isPro: boolean,
): Promise<{ shouldUncensorResponse: boolean }> {
const openaiApiKey = process.env.OPENAI_API_KEY;

Expand Down Expand Up @@ -43,6 +44,7 @@ export async function getModerationResult(
const shouldUncensorResponse = determineShouldUncensorResponse(
moderationLevel,
hazardCategories,
isPro,
);

// console.log(
Expand Down Expand Up @@ -119,6 +121,7 @@ function calculateModerationLevel(
function determineShouldUncensorResponse(
moderationLevel: number,
hazardCategories: string[],
isPro: boolean,
): boolean {
const forbiddenCategories = [
"sexual",
Expand All @@ -139,7 +142,7 @@ function determineShouldUncensorResponse(

// 0.1 is the minimum moderation level for the model to be used
const minModerationLevel = 0.1;
const maxModerationLevel = 0.9;
const maxModerationLevel = isPro ? 0.98 : 0.9;
return (
moderationLevel >= minModerationLevel &&
moderationLevel <= maxModerationLevel &&
Expand Down