AI를 '키 없으면 비활성되는 부가 엣지'로 통합. 기존 변환에 무영향, 일반 변환과 충돌 없는 txt↔txt/md↔md self-edge만 노출. - IChatClient + OpenAiChatClient/AnthropicChatClient (HttpClient 직접, SDK 의존 0) - LlmProvider: summarize/translate/proofread/custom, ISettingsStore 키 + 환경변수(OPENAI_API_KEY/ANTHROPIC_API_KEY) 폴백 - CheckAvailabilityAsync 게이트: 키 없으면 NotReady → 그래프에서 실행 비활성 - ConvertOptions.Ai (백엔드/모델/작업/대상언어) - 테스트 5개 (키 게이트·프롬프트 구성·그래프 엣지) — 총 34개 통과
30 lines
1 KiB
C#
30 lines
1 KiB
C#
using Everything2Everything.Core.Providers;
|
|
|
|
namespace Everything2Everything.Core;
|
|
|
|
public static class Everything2EverythingBootstrap
|
|
{
|
|
public static ConversionEngine CreateDefault()
|
|
{
|
|
var settings = new DpapiSettingsStore();
|
|
var magick = new Converters.MagickProvider();
|
|
var pdf = new Converters.PdfProvider();
|
|
var providers = new IConverterProvider[]
|
|
{
|
|
magick,
|
|
new Converters.HeicProvider(magick),
|
|
pdf,
|
|
new Converters.PdfToolProvider(),
|
|
new Converters.DocxProvider(pdf),
|
|
new Converters.HtmlProvider(),
|
|
new Converters.HwpxProvider(),
|
|
new Converters.OcrProvider(pdf),
|
|
new Converters.DocumentProvider(),
|
|
new Converters.DataProvider(),
|
|
new Converters.VectorProvider(),
|
|
new Converters.ImageOptimProvider(),
|
|
new Converters.LlmProvider(settings),
|
|
};
|
|
return new ConversionEngine(new ProviderRegistry(providers));
|
|
}
|
|
}
|