Families.AutoWriter 1.0.0.0
Families 콘텐츠를 반복 작업 없이 작성·등록하도록 돕는 자동화 작성 도구입니다.
로딩중...
검색중...
일치하는것 없음
FamiliesAutoWriter.Services.PromptHistoryService 클래스 참조sealed

더 자세히 ...

Public 멤버 함수

 PromptHistoryService ()
bool IsDuplicate (string prompt)
void MarkSent (string prompt)
void Clear ()

Private 멤버 함수

HashSet< string > Load ()
void Save ()

정적 Private 멤버 함수

static string Hash (string s)

Private 속성

readonly string _historyFile
readonly HashSet< string > _sentHashes

정적 Private 속성

static readonly object _fileGate = new()

상세한 설명

이미 전송한 프롬프트 해시를 기록해 중복 전송을 방지합니다.

PromptHistoryService.cs 파일의 16 번째 라인에서 정의되었습니다.

생성자 & 소멸자 문서화

◆ PromptHistoryService()

FamiliesAutoWriter.Services.PromptHistoryService.PromptHistoryService ( )
inline

지정한 설정으로 PromptHistoryService 클래스의 새 인스턴스를 초기화합니다.

PromptHistoryService.cs 파일의 54 번째 라인에서 정의되었습니다.

55 {
56 var dir = Path.Combine(
57 Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
58 "FamiliesAutoWriter");
59 Directory.CreateDirectory(dir);
60 _historyFile = Path.Combine(dir, "prompt_history.json");
61 _sentHashes = Load();
62 }

다음을 참조함 : _historyFile, _sentHashes, Load().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

멤버 함수 문서화

◆ Clear()

void FamiliesAutoWriter.Services.PromptHistoryService.Clear ( )
inline

Clear 작업을 수행합니다.

PromptHistoryService.cs 파일의 133 번째 라인에서 정의되었습니다.

134 {
135 lock (_fileGate)
136 {
137 _sentHashes.Clear();
138 Save();
139 }
140 }

다음을 참조함 : _fileGate, _sentHashes, Save().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ Hash()

string FamiliesAutoWriter.Services.PromptHistoryService.Hash ( string s)
inlinestaticprivate

Hash 조건을 확인합니다.

매개변수
s이벤트를 발생시킨 객체입니다.
반환값
Hash 작업에서 생성한 string 결과입니다.

PromptHistoryService.cs 파일의 204 번째 라인에서 정의되었습니다.

204 =>
205 Convert.ToHexString(SHA256.HashData(Encoding.UTF8.GetBytes(s.Trim()))).ToLower()[..16];

다음에 의해서 참조됨 : IsDuplicate(), MarkSent().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ IsDuplicate()

bool FamiliesAutoWriter.Services.PromptHistoryService.IsDuplicate ( string prompt)
inline

Is Duplicate 조건을 확인합니다.

매개변수
promptprompt에 사용할 string 값입니다.
반환값
Is Duplicate 조건이 충족되면 true이고, 그렇지 않으면 false입니다.

PromptHistoryService.cs 파일의 88 번째 라인에서 정의되었습니다.

89 {
90 lock (_fileGate)
91 {
92 foreach (var hash in Load())
93 _sentHashes.Add(hash);
94 return _sentHashes.Contains(Hash(prompt));
95 }
96 }

다음을 참조함 : _fileGate, _sentHashes, Hash(), Load().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ Load()

HashSet< string > FamiliesAutoWriter.Services.PromptHistoryService.Load ( )
inlineprivate

데이터를 불러옵니다.

반환값
Load 작업에서 생성한 HashSet<string> 결과입니다.

PromptHistoryService.cs 파일의 158 번째 라인에서 정의되었습니다.

159 {
160 if (!File.Exists(_historyFile)) return [];
161 try
162 {
163 var json = File.ReadAllText(_historyFile);
164 return JsonSerializer.Deserialize<HashSet<string>>(json) ?? [];
165 }
166 catch { return []; }
167 }

다음을 참조함 : _historyFile.

다음에 의해서 참조됨 : IsDuplicate(), MarkSent(), PromptHistoryService().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ MarkSent()

void FamiliesAutoWriter.Services.PromptHistoryService.MarkSent ( string prompt)
inline

Mark Sent 작업을 수행합니다.

매개변수
promptprompt에 사용할 string 값입니다.

PromptHistoryService.cs 파일의 114 번째 라인에서 정의되었습니다.

115 {
116 lock (_fileGate)
117 {
118 foreach (var hash in Load())
119 _sentHashes.Add(hash);
120 _sentHashes.Add(Hash(prompt));
121 Save();
122 }
123 }

다음을 참조함 : _fileGate, _sentHashes, Hash(), Load(), Save().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ Save()

void FamiliesAutoWriter.Services.PromptHistoryService.Save ( )
inlineprivate

데이터를 저장합니다.

PromptHistoryService.cs 파일의 177 번째 라인에서 정의되었습니다.

177 =>
178 File.WriteAllText(_historyFile, JsonSerializer.Serialize(_sentHashes));

다음을 참조함 : _historyFile, _sentHashes.

다음에 의해서 참조됨 : Clear(), MarkSent().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ _fileGate

readonly object FamiliesAutoWriter.Services.PromptHistoryService._fileGate = new()
staticprivate

file Gate 값을 보관합니다.

PromptHistoryService.cs 파일의 26 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : Clear(), IsDuplicate(), MarkSent().

◆ _historyFile

readonly string FamiliesAutoWriter.Services.PromptHistoryService._historyFile
private

history File 값을 보관합니다.

PromptHistoryService.cs 파일의 35 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : Load(), PromptHistoryService(), Save().

◆ _sentHashes

readonly HashSet<string> FamiliesAutoWriter.Services.PromptHistoryService._sentHashes
private

sent Hashes 값을 보관합니다.

PromptHistoryService.cs 파일의 44 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : Clear(), IsDuplicate(), MarkSent(), PromptHistoryService(), Save().


이 클래스에 대한 문서화 페이지는 다음의 파일로부터 생성되었습니다.: