fix askai put record

This commit is contained in:
2025-06-19 18:36:20 +09:00
parent 8a82f392ca
commit d49a347300
4 changed files with 44 additions and 15 deletions

View File

@@ -85,6 +85,37 @@ Answer:`
console.log('AI response received:', answer)
// Save conversation to ATProto
try {
const timestamp = new Date().toISOString()
const conversationRecord = {
repo: adminData.did,
collection: 'ai.syui.log.chat',
record: {
type: 'ai.syui.log.chat',
question: question,
answer: answer,
user: user ? {
did: user.did,
handle: user.handle,
displayName: user.displayName || user.handle
} : null,
ai: {
did: adminData.did,
handle: adminData.profile?.handle,
displayName: adminData.profile?.displayName
},
timestamp: timestamp,
createdAt: timestamp
}
}
await agent.com.atproto.repo.putRecord(conversationRecord)
console.log('Conversation saved to ATProto')
} catch (saveError) {
console.error('Failed to save conversation:', saveError)
}
// Send response to blog
window.dispatchEvent(new CustomEvent('aiResponseReceived', {
detail: {

View File

@@ -1,6 +1,6 @@
import { useState, useEffect } from 'react'
import { atproto, collections } from '../api/atproto.js'
import { getApiConfig, isSyuIsHandle } from '../utils/pds.js'
import { getApiConfig, isSyuIsHandle, getPdsFromHandle } from '../utils/pds.js'
import { env } from '../config/env.js'
export function useUserData(adminData) {
@@ -88,16 +88,11 @@ export function useUserData(adminData) {
userPds = user.pds.replace('https://', '')
userApiConfig = getApiConfig(userPds)
} else {
// Auto-detect PDS based on handle and get real DID
if (isSyuIsHandle(userHandle)) {
userPds = env.pds
userApiConfig = getApiConfig(userPds)
userDid = await atproto.getDid(userPds, userHandle)
} else {
userPds = 'bsky.social'
userApiConfig = getApiConfig(userPds)
userDid = await atproto.getDid(userPds, userHandle)
}
// Get actual PDS from handle first
const realPds = await getPdsFromHandle(userHandle)
userPds = realPds.replace('https://', '')
userApiConfig = getApiConfig(realPds)
userDid = await atproto.getDid(userPds, userHandle)
}
// Get user's own ai.syui.log records

View File

@@ -1,8 +1,11 @@
import { env } from '../config/env.js'
// PDS判定からAPI設定を取得
// PDS判定からAPI設定を取得 - 実際のPDSエンドポイントに基づいて設定
export function getApiConfig(pds) {
if (pds.includes(env.pds)) {
// pdsからhttps://を除去してドメインのみ取得
const cleanPds = pds.replace(/^https?:\/\//, '')
if (cleanPds.includes(env.pds)) {
return {
pds: `https://${env.pds}`,
bsky: `https://bsky.${env.pds}`,

View File

@@ -3,11 +3,11 @@
set -e
cb=ai.syui.log
cl=( $cb.chat.lang $cb.chat.comment)
cl=($cb.chat $cb.user $cb )
f=~/.config/syui/ai/log/config.json
default_collection="ai.syui.log.chat"
default_pds="syu.is"
default_pds=bsky.social
default_did=`cat $f|jq -r .admin.did`
default_token=`cat $f|jq -r .admin.access_jwt`
default_refresh=`cat $f|jq -r .admin.refresh_jwt`