mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-08-19 02:51:47 +08:00
fix(server): transcript key & bump models (#15485)
#### PR Dependency Tree * **PR #15485** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Upgraded built-in AI actions and chat model selection to Gemini 3.7 Flash. * Transcript attachments now retain storage keys and support secure presigned URLs during processing. * Completed transcript results preserve attachment metadata for reliable access. * **Bug Fixes** * Improved transcript handling across uploads, retries, and native processing. * Added safeguards for invalid or missing attachment URLs. * **Maintenance** * Added a migration to backfill storage keys for existing transcript records without altering their URLs. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
@@ -3,8 +3,8 @@
|
||||
"name": "Transcript audio",
|
||||
"action": "Transcript audio",
|
||||
"managedRoute": {
|
||||
"targets": ["gemini-3.5-flash-lite"],
|
||||
"premiumTargets": ["gemini-3.6-flash"]
|
||||
"targets": ["gemini-3.7-flash"],
|
||||
"premiumTargets": ["gemini-3.7-flash"]
|
||||
},
|
||||
"config": {
|
||||
"requireContent": false,
|
||||
@@ -17,8 +17,8 @@
|
||||
"name": "Transcript audio structured",
|
||||
"action": "Transcript audio structured",
|
||||
"managedRoute": {
|
||||
"targets": ["gemini-3.5-flash-lite"],
|
||||
"premiumTargets": ["gemini-3.6-flash"]
|
||||
"targets": ["gemini-3.7-flash"],
|
||||
"premiumTargets": ["gemini-3.7-flash"]
|
||||
},
|
||||
"config": {
|
||||
"requireContent": false,
|
||||
@@ -39,7 +39,7 @@
|
||||
{
|
||||
"name": "Generate a caption",
|
||||
"action": "Generate a caption",
|
||||
"managedRoute": { "targets": ["gemini-3.5-flash-lite"] },
|
||||
"managedRoute": { "targets": ["gemini-3.7-flash"] },
|
||||
"config": {
|
||||
"requireContent": false,
|
||||
"requireAttachment": true
|
||||
@@ -129,7 +129,7 @@
|
||||
{
|
||||
"name": "Explain this image",
|
||||
"action": "Explain this image",
|
||||
"managedRoute": { "targets": ["gemini-3.5-flash-lite"] },
|
||||
"managedRoute": { "targets": ["gemini-3.7-flash"] },
|
||||
"config": {
|
||||
"requireContent": false,
|
||||
"requireAttachment": true
|
||||
@@ -148,7 +148,7 @@
|
||||
{
|
||||
"name": "Explain this code",
|
||||
"action": "Explain this code",
|
||||
"managedRoute": { "targets": ["gemini-3.5-flash-lite"] },
|
||||
"managedRoute": { "targets": ["gemini-3.7-flash"] },
|
||||
"messages": [
|
||||
{
|
||||
"role": "system",
|
||||
@@ -163,7 +163,7 @@
|
||||
{
|
||||
"name": "Translate to",
|
||||
"action": "Translate",
|
||||
"managedRoute": { "targets": ["gemini-3.5-flash-lite"] },
|
||||
"managedRoute": { "targets": ["gemini-3.7-flash"] },
|
||||
"params": {
|
||||
"language": {
|
||||
"default": "English",
|
||||
@@ -256,7 +256,7 @@
|
||||
{
|
||||
"name": "Write a twitter about this",
|
||||
"action": "Write a twitter about this",
|
||||
"managedRoute": { "targets": ["gemini-3.5-flash-lite"] },
|
||||
"managedRoute": { "targets": ["gemini-3.7-flash"] },
|
||||
"messages": [
|
||||
{
|
||||
"role": "system",
|
||||
@@ -271,7 +271,7 @@
|
||||
{
|
||||
"name": "Write a poem about this",
|
||||
"action": "Write a poem about this",
|
||||
"managedRoute": { "targets": ["gemini-3.5-flash-lite"] },
|
||||
"managedRoute": { "targets": ["gemini-3.7-flash"] },
|
||||
"messages": [
|
||||
{
|
||||
"role": "system",
|
||||
@@ -301,7 +301,7 @@
|
||||
{
|
||||
"name": "Write outline",
|
||||
"action": "Write outline",
|
||||
"managedRoute": { "targets": ["gemini-3.5-flash-lite"] },
|
||||
"managedRoute": { "targets": ["gemini-3.7-flash"] },
|
||||
"messages": [
|
||||
{
|
||||
"role": "system",
|
||||
@@ -316,7 +316,7 @@
|
||||
{
|
||||
"name": "Change tone to",
|
||||
"action": "Change tone",
|
||||
"managedRoute": { "targets": ["gemini-3.5-flash-lite"] },
|
||||
"managedRoute": { "targets": ["gemini-3.7-flash"] },
|
||||
"params": {
|
||||
"tone": {
|
||||
"default": "professional",
|
||||
@@ -337,7 +337,7 @@
|
||||
{
|
||||
"name": "Brainstorm ideas about this",
|
||||
"action": "Brainstorm ideas about this",
|
||||
"managedRoute": { "targets": ["gemini-3.5-flash-lite"] },
|
||||
"managedRoute": { "targets": ["gemini-3.7-flash"] },
|
||||
"messages": [
|
||||
{
|
||||
"role": "system",
|
||||
@@ -386,7 +386,7 @@
|
||||
{
|
||||
"name": "Improve writing for it",
|
||||
"action": "Improve writing for it",
|
||||
"managedRoute": { "targets": ["gemini-3.5-flash-lite"] },
|
||||
"managedRoute": { "targets": ["gemini-3.7-flash"] },
|
||||
"messages": [
|
||||
{
|
||||
"role": "system",
|
||||
@@ -416,7 +416,7 @@
|
||||
{
|
||||
"name": "Fix spelling for it",
|
||||
"action": "Fix spelling for it",
|
||||
"managedRoute": { "targets": ["gemini-3.5-flash-lite"] },
|
||||
"managedRoute": { "targets": ["gemini-3.7-flash"] },
|
||||
"messages": [
|
||||
{
|
||||
"role": "system",
|
||||
@@ -476,7 +476,7 @@
|
||||
{
|
||||
"name": "Create headings",
|
||||
"action": "Create headings",
|
||||
"managedRoute": { "targets": ["gemini-3.5-flash-lite"] },
|
||||
"managedRoute": { "targets": ["gemini-3.7-flash"] },
|
||||
"messages": [
|
||||
{
|
||||
"role": "system",
|
||||
@@ -521,7 +521,7 @@
|
||||
{
|
||||
"name": "Make it longer",
|
||||
"action": "Make it longer",
|
||||
"managedRoute": { "targets": ["gemini-3.5-flash-lite"] },
|
||||
"managedRoute": { "targets": ["gemini-3.7-flash"] },
|
||||
"messages": [
|
||||
{
|
||||
"role": "system",
|
||||
@@ -536,7 +536,7 @@
|
||||
{
|
||||
"name": "Make it shorter",
|
||||
"action": "Make it shorter",
|
||||
"managedRoute": { "targets": ["gemini-3.5-flash-lite"] },
|
||||
"managedRoute": { "targets": ["gemini-3.7-flash"] },
|
||||
"messages": [
|
||||
{
|
||||
"role": "system",
|
||||
@@ -551,7 +551,7 @@
|
||||
{
|
||||
"name": "Continue writing",
|
||||
"action": "Continue writing",
|
||||
"managedRoute": { "targets": ["gemini-3.5-flash-lite"] },
|
||||
"managedRoute": { "targets": ["gemini-3.7-flash"] },
|
||||
"messages": [
|
||||
{
|
||||
"role": "system",
|
||||
@@ -711,8 +711,8 @@
|
||||
},
|
||||
{
|
||||
"id": "gemini",
|
||||
"modelId": "gemini-3.6-flash",
|
||||
"displayName": "Gemini 3.6 Flash",
|
||||
"modelId": "gemini-3.7-flash",
|
||||
"displayName": "Gemini 3.7 Flash",
|
||||
"minimumTier": "premium"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -81,12 +81,12 @@ mod tests {
|
||||
|
||||
let response = llm_resolve_model_registry_variant(ModelRegistryResolveRequest {
|
||||
backend_kind: Some("gemini_api".to_string()),
|
||||
model_id: "gemini-3.6-flash".to_string(),
|
||||
model_id: "gemini-3.7-flash".to_string(),
|
||||
})
|
||||
.unwrap();
|
||||
|
||||
assert_eq!(response.matched_by.as_deref(), Some("raw_model_id"));
|
||||
assert_eq!(response.variant.unwrap().raw_model_id, "gemini-3.6-flash");
|
||||
assert_eq!(response.variant.unwrap().raw_model_id, "gemini-3.7-flash");
|
||||
}
|
||||
|
||||
#[test]
|
||||
@@ -301,7 +301,7 @@ mod tests {
|
||||
attachment_kinds: None,
|
||||
attachment_source_kinds: None,
|
||||
has_remote_attachments: None,
|
||||
model_id: Some("gemini-3.6-flash".to_string()),
|
||||
model_id: Some("gemini-3.7-flash".to_string()),
|
||||
output_type: Some("image".to_string()),
|
||||
},
|
||||
})
|
||||
|
||||
@@ -210,7 +210,7 @@ mod tests {
|
||||
fn should_materialize_structured_request_with_response_contract() {
|
||||
let response = llm_build_canonical_structured_request(
|
||||
serde_json::from_value::<CanonicalStructuredRequestContract>(json!({
|
||||
"model": "gemini-3.6-flash",
|
||||
"model": "gemini-3.7-flash",
|
||||
"messages": [
|
||||
{ "role": "user", "content": "hello" }
|
||||
],
|
||||
@@ -226,7 +226,7 @@ mod tests {
|
||||
assert_eq!(
|
||||
response,
|
||||
json!({
|
||||
"model": "gemini-3.6-flash",
|
||||
"model": "gemini-3.7-flash",
|
||||
"messages": [
|
||||
{
|
||||
"role": "user",
|
||||
|
||||
@@ -597,13 +597,13 @@ mod tests {
|
||||
);
|
||||
|
||||
let transcript = built_in_prompt("Transcript audio structured").expect("transcript prompt");
|
||||
assert_eq!(transcript.managed_targets, ["gemini-3.5-flash-lite"]);
|
||||
assert_eq!(transcript.managed_targets, ["gemini-3.7-flash"]);
|
||||
assert_eq!(
|
||||
transcript
|
||||
.managed_premium_targets
|
||||
.as_deref()
|
||||
.map(|targets| targets.iter().map(String::as_str).collect::<Vec<_>>()),
|
||||
Some(vec!["gemini-3.6-flash"])
|
||||
Some(vec!["gemini-3.7-flash"])
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -262,7 +262,7 @@ mod tests {
|
||||
CopilotManagedTier::Premium
|
||||
)
|
||||
.unwrap(),
|
||||
["gemini-3.6-flash"]
|
||||
["gemini-3.7-flash"]
|
||||
);
|
||||
assert_eq!(
|
||||
managed_targets(&slot("index.embedding").unwrap(), None, CopilotManagedTier::Standard).unwrap(),
|
||||
|
||||
@@ -326,7 +326,7 @@ mod tests {
|
||||
id: "vertex".to_string(),
|
||||
provider: "geminiVertex".to_string(),
|
||||
enabled: true,
|
||||
models: vec!["gemini-3.6-flash".to_string()],
|
||||
models: vec!["gemini-3.7-flash".to_string()],
|
||||
config: json!({ "project": "affine-us", "location": location }),
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user