Added a missing period at the end of the FactChecker persona description. Ensures consistency in text descriptions across appsettings.json configuration.
466 lines
18 KiB
JSON
466 lines
18 KiB
JSON
{
|
|
"Logging": {
|
|
"LogLevel": {
|
|
"Default": "Information",
|
|
"Microsoft.AspNetCore": "Warning",
|
|
"Microsoft.EntityFrameworkCore": "Warning"
|
|
}
|
|
},
|
|
"AllowedHosts": "*",
|
|
"ConnectionStrings": {
|
|
"Sqlite": "Data Source=elsa.sqlite.db;Cache=Shared;"
|
|
},
|
|
"Webhooks": {
|
|
"Sources": [
|
|
{
|
|
"Id": "Orchard",
|
|
"Name": "Orchard",
|
|
"Origin": "https://localhost:8196",
|
|
"EventTypes": [
|
|
{
|
|
"EventType": "content-item.published",
|
|
"PayloadType": "Elsa.OrchardCore.WebhookPayloads.ContentItemPublished, Elsa.OrchardCore"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"Identity": {
|
|
"Tokens": {
|
|
"SigningKey": "sufficiently-large-secret-signing-key",
|
|
"AccessTokenLifetime": "1:00:00:00",
|
|
"RefreshTokenLifetime": "7:00:00:00"
|
|
},
|
|
"Roles": [
|
|
{
|
|
"Id": "admin",
|
|
"Name": "Administrator",
|
|
"Permissions": [
|
|
"*"
|
|
],
|
|
"TenantId": "default"
|
|
}
|
|
],
|
|
"Users": [
|
|
{
|
|
"Id": "a2323f46-42db-4e15-af8b-94238717d817",
|
|
"Name": "admin",
|
|
"HashedPassword": "TfKzh9RLix6FPcCNeHLkGrysFu3bYxqzGqduNdi8v1U=",
|
|
"HashedPasswordSalt": "JEy9kBlhHCNsencitRHlGxmErmSgY+FVyMJulCH27Ds=",
|
|
"Roles": [
|
|
"admin"
|
|
],
|
|
"TenantId": "default"
|
|
}
|
|
],
|
|
"Applications": [
|
|
{
|
|
"Id": "d57030226341448daff5a2935aba2d3f",
|
|
"Name": "Postman",
|
|
"Roles": [
|
|
"admin"
|
|
],
|
|
"ClientId": "HXr0Vzdm9KCZbwsJ",
|
|
"ClientSecret": "a<~QGGHTEA%u4;CU&'Wga5ED:_&Gd1C)",
|
|
"HashedApiKey": "Z5ClHs3mbzx8Pnw3+PxbMq8A/Y+VKMCCDTGYtax8JFM=",
|
|
"HashedApiKeySalt": "kBisa1X8FwBfN2zmyGMFRgIVVBleghhQAJ4WGyTkaD0=",
|
|
"HashedClientSecret": "jEv58d0SVbGQ3nBZM0lkzHghG4Y+lMKW80wipz+9vHk=",
|
|
"HashedClientSecretSalt": "xRKy14Ok1/tU3kLf/8V1fcbLIegy9vcM90Peu2tzohU=",
|
|
"TenantId": "default"
|
|
}
|
|
]
|
|
},
|
|
"OrchardCore": {
|
|
"Client": {
|
|
"BaseAddress": "https://localhost:8196",
|
|
"ClientId": "elsa-server",
|
|
"ClientSecret": "elsa-server"
|
|
},
|
|
"ContentTypes": [
|
|
"BlogPost"
|
|
]
|
|
},
|
|
"Agents": {
|
|
"ApiKeys": [
|
|
{
|
|
"Name": "gpt-4o",
|
|
"Value": ""
|
|
}
|
|
],
|
|
"Services": [
|
|
{
|
|
"Name": "ChatCompletion",
|
|
"Type": "OpenAIChatCompletion",
|
|
"Settings": {
|
|
"ModelId": "gpt-4o",
|
|
"ApiKeyRef": "gpt-4o"
|
|
}
|
|
},
|
|
{
|
|
"Name": "TextToImage",
|
|
"Type": "OpenAITextToImage",
|
|
"Settings": {
|
|
"ModelId": "dall-e-3",
|
|
"ApiKeyRef": "gpt-4o"
|
|
}
|
|
}
|
|
],
|
|
"Agents": [
|
|
{
|
|
"Name": "Proofreader",
|
|
"Description": "A persona that proofreads and corrects text by identifying and correcting grammar, spelling, punctuation, and formatting errors in the text.",
|
|
"Services": [
|
|
"ChatCompletion"
|
|
],
|
|
"FunctionName": "Proofread",
|
|
"PromptTemplate": "You are a Proofreader. Identify and correct grammar, spelling, punctuation, and formatting errors in the following text. Do not change the content or meaning of the text. You will receive the content to be checked in JSON format, where each field's value in the JSON object needs to be checked. Create a JSON response that has the exact same structure as the received JSON structure, but replace each field's value with the corrected version of the original value. Example input JSON: { \"title\": \"Welkcome to Orchsjard Core\", \"markdown\": \"Welcome to Orchard Core, a beitifull CMS and blogposting engine for everone!\" }. Example output JSON: { \"title\": \"Welcome to Orchard Core\", \"markdown\": \"Welcome to Orchard Core, a beautiful CMS and blog engine for everyone!\" }. Here's the JSON containing the fields to proofread and correct: {{$Content}}",
|
|
"InputVariables": [
|
|
{
|
|
"Name": "Content",
|
|
"Description": "An object containing fields to proofread.",
|
|
"Type": "string"
|
|
}
|
|
],
|
|
"OutputVariable": {
|
|
"Name": "Content",
|
|
"Description": "The proofreading results.",
|
|
"Type": "object"
|
|
},
|
|
"ExecutionSettings": {
|
|
"MaxTokens": null,
|
|
"Temperature": 0.5,
|
|
"TopP": 0.9,
|
|
"PresencePenalty": 0.0,
|
|
"FrequencyPenalty": 0.0,
|
|
"ResponseFormat": "json_object"
|
|
}
|
|
},
|
|
{
|
|
"Name": "SEO Specialist",
|
|
"Description": "A persona that extracts relevant keywords and creates a meta description, optimized for search engines.",
|
|
"Services": [
|
|
"ChatCompletion"
|
|
],
|
|
"FunctionName": "ExtractKeywordsAndMetaDescription",
|
|
"PromptTemplate": "You are an SEO Specialist. Extract relevant keywords and create a meta description that is optimized for search engines from the following text: {{$Content}}. Your response must be using the following JSON format: { \"keywords\": [\"keyword1\", \"keyword2\"], \"description\": \"The meta description\" }.",
|
|
"InputVariables": [
|
|
{
|
|
"Name": "Content",
|
|
"Description": "The content to extract from.",
|
|
"Type": "string"
|
|
}
|
|
],
|
|
"OutputVariable": {
|
|
"Name": "SeoResult",
|
|
"Description": "The description and keywords.",
|
|
"Type": "object"
|
|
},
|
|
"ExecutionSettings": {
|
|
"Temperature": 0.5,
|
|
"TopP": 0.9,
|
|
"PresencePenalty": 0.5,
|
|
"FrequencyPenalty": 0.5
|
|
}
|
|
},
|
|
{
|
|
"Name": "Social Media Specialist",
|
|
"Description": "A persona that specializes in writing catchy social media posts based on a given piece of content.",
|
|
"Services": [
|
|
"ChatCompletion"
|
|
],
|
|
"FunctionName": "WriteSocialMediaPost",
|
|
"PromptTemplate": "You are a Social Media Specialist. Write a catchy social media post based on the following text: {{$Content}}. The post should be optimized for social media platforms such as X (formerly Twitter) , Facebook, LinkedIn, and Instagram. Your response must be in JSON format and contain a single field named 'post' with the text of the social media post. Example: { \"post\": \"Some catchy social media post.\" }",
|
|
"InputVariables": [
|
|
{
|
|
"Name": "Content",
|
|
"Description": "The content to write a social media post for.",
|
|
"Type": "string"
|
|
}
|
|
],
|
|
"OutputVariable": {
|
|
"Name": "Post",
|
|
"Description": "The generated social media post.",
|
|
"Type": "object"
|
|
},
|
|
"ExecutionSettings": {
|
|
"Temperature": 0.9,
|
|
"TopP": 0.9,
|
|
"PresencePenalty": 0.7,
|
|
"FrequencyPenalty": 0.7
|
|
}
|
|
},
|
|
{
|
|
"Name": "Tagger",
|
|
"Description": "A persona that generates a specified number of tags for a given text by extract relevant keywords and creating a meta description, optimized for search engines.",
|
|
"Services": [
|
|
"ChatCompletion"
|
|
],
|
|
"FunctionName": "GenerateTags",
|
|
"PromptTemplate": "You are a social media specialist. Please extract relevant tags (a.k.a. keywords) from the following text that is optimized for use with social media such as x (formerly twitter), facebook, linkedin and instagram. Your response will be in JSON format. The response JSON structure consists of a single field named 'tags' and is an array of strings. Example: { \"tags\": [\"some tag\"] }. Text for which to generate relevant tags: {{$Content}}. Number of tags to generate: {{$Number}}",
|
|
"InputVariables": [
|
|
{
|
|
"Name": "Content",
|
|
"Description": "The content to generate tags for.",
|
|
"Type": "String"
|
|
},
|
|
{
|
|
"Name": "Number",
|
|
"Description": "The number of tags to generate.",
|
|
"Type": "Int32"
|
|
}
|
|
],
|
|
"OutputVariable": {
|
|
"Name": "Tags",
|
|
"Description": "The generated tags.",
|
|
"Type": "Elsa.Samples.AspNet.OrchardCoreIntegration.GenerateTagsResult, Elsa.Samples.AspNet.OrchardCoreIntegration"
|
|
},
|
|
"ExecutionSettings": {
|
|
"Temperature": 0.5,
|
|
"TopP": 0.9,
|
|
"PresencePenalty": 0.0,
|
|
"FrequencyPenalty": 0.0,
|
|
"ResponseFormat": "json_object"
|
|
}
|
|
},
|
|
{
|
|
"Name": "Summarizer",
|
|
"Description": "A persona that creates concise summaries that capture the main points of the text.",
|
|
"Services": [
|
|
"ChatCompletion"
|
|
],
|
|
"FunctionName": "Summarize",
|
|
"PromptTemplate": "You are a Summarizer. Please create a concise summary of the following text that captures the main points. Text: {{$Content}}",
|
|
"InputVariables": [
|
|
{
|
|
"Name": "Content",
|
|
"Description": "The content to summarize.",
|
|
"Type": "String"
|
|
}
|
|
],
|
|
"OutputVariable": {
|
|
"Name": "Summary",
|
|
"Description": "The summary of the content.",
|
|
"Type": "String"
|
|
},
|
|
"ExecutionSettings": {
|
|
"Temperature": 0.5,
|
|
"TopP": 0.9,
|
|
"PresencePenalty": 0.0,
|
|
"FrequencyPenalty": 0.0
|
|
}
|
|
},
|
|
{
|
|
"Name": "TitleEditor",
|
|
"Description": "A persona that creates engaging and relevant titles that accurately represent the content of the text.",
|
|
"Services": [
|
|
"ChatCompletion"
|
|
],
|
|
"FunctionName": "CreateTitle",
|
|
"PromptTemplate": "You are a Title Editor. Create an engaging and relevant title for the following text that accurately represents its content in JSON format. The JSON response must be in the following format: ```json\n{ \"title\": \"Some amazing title\" }```. The text to create a title from: {{$Content}}",
|
|
"InputVariables": [
|
|
{
|
|
"Name": "Content",
|
|
"Description": "The content to create a title for.",
|
|
"Type": "String"
|
|
}
|
|
],
|
|
"OutputVariable": {
|
|
"Name": "Title",
|
|
"Description": "The generated title.",
|
|
"Type": "Elsa.Samples.AspNet.OrchardCoreIntegration.TitleResult, Elsa.Samples.AspNet.OrchardCoreIntegration"
|
|
},
|
|
"ExecutionSettings": {
|
|
"Temperature": 0.7,
|
|
"TopP": 0.9,
|
|
"PresencePenalty": 0.0,
|
|
"FrequencyPenalty": 0.0,
|
|
"ResponseFormat": "json_object"
|
|
}
|
|
},
|
|
{
|
|
"Name": "Translator",
|
|
"Description": "A persona that translates text into a target language.",
|
|
"Services": [
|
|
"ChatCompletion"
|
|
],
|
|
"FunctionName": "Translate",
|
|
"PromptTemplate": "You are a Translator. Translate the provided text to the target language using the specified language or culture code. Do not change the content or meaning of the text. The text will be provided in the form of a JSON object, where each field contains text to be translated. Your response will be in the exact same JSON format, but with the original text values replaced with the translation for each field. The JSON containing the fields to translate: {{$Content}}. The target language culture code: {{Language}}",
|
|
"InputVariables": [
|
|
{
|
|
"Name": "Content",
|
|
"Description": "The content to translate.",
|
|
"Type": "string"
|
|
},
|
|
{
|
|
"Name": "Language",
|
|
"Description": "The culture code of the target language to translate the content to.",
|
|
"Type": "string"
|
|
}
|
|
],
|
|
"OutputVariable": {
|
|
"Name": "Content",
|
|
"Description": "The translation result.",
|
|
"Type": "object"
|
|
},
|
|
"ExecutionSettings": {
|
|
"MaxTokens": null,
|
|
"Temperature": 0.2,
|
|
"TopP": 0.9,
|
|
"PresencePenalty": 0.0,
|
|
"FrequencyPenalty": 0.0,
|
|
"ResponseFormat": "json_object"
|
|
}
|
|
},
|
|
{
|
|
"Name": "Artist",
|
|
"Description": "A persona that creates an image that visualizes the essence of a given text.",
|
|
"Services": [
|
|
"ChatCompletion",
|
|
"TextToImage"
|
|
],
|
|
"FunctionName": "DesignGraphics",
|
|
"PromptTemplate": "You are an Artist that generates an image by interpreting the essence of the following text: {{$Content}}. Your response will be JSON in the following format: {\"imageUrl\": \"https://dalle.com/the-image.png\"}.",
|
|
"InputVariables": [
|
|
{
|
|
"Name": "Content",
|
|
"Description": "The content to design graphics for.",
|
|
"Type": "String"
|
|
}
|
|
],
|
|
"OutputVariable": {
|
|
"Name": "Image",
|
|
"Description": "An URL to the created artwork.",
|
|
"Type": "object"
|
|
},
|
|
"ExecutionSettings": {
|
|
"MaxTokens": null,
|
|
"Temperature": 1,
|
|
"TopP": 0.9,
|
|
"PresencePenalty": 0.0,
|
|
"FrequencyPenalty": 0.0,
|
|
"ResponseFormat": "json_object"
|
|
},
|
|
"Plugins": [
|
|
"ImageGenerator"
|
|
]
|
|
},
|
|
{
|
|
"Name": "FactChecker",
|
|
"Description": "A persona that verifies the accuracy of information within a given text.",
|
|
"Services": [
|
|
"ChatCompletion"
|
|
],
|
|
"FunctionName": "CheckFacts",
|
|
"PromptTemplate": "You are a Fact Checker. Please verify the accuracy of the information presented in the following text, including facts, explanations, and references. Your response will be in the following JSON format: { \"incorrectFacts\": [{ \"incorrectStatement\": \"The statement found to be incorrect.\", \"correctStatement\": \"The corrected statement\", \"explanation\": \"An explanation about why the statement was incorrect and why the correct statement is correct, phrased in a way that is appropriate based on the context of the statement.\", \"references\": [\"An array of strings where each string is a reference to more information, usually a URL, but could be anything, like names of articles, white papers, publications, etc.\"] }] }. Text to fact-check: {{$Content}}",
|
|
"InputVariables": [
|
|
{
|
|
"Name": "Content",
|
|
"Description": "The content to check facts for.",
|
|
"Type": "String"
|
|
}
|
|
],
|
|
"OutputVariable": {
|
|
"Name": "FactCheckResult",
|
|
"Description": "The results of the fact-checking.",
|
|
"Type": "Elsa.Samples.AspNet.OrchardCoreIntegration.FactCheckResult, Elsa.Samples.AspNet.OrchardCoreIntegration"
|
|
},
|
|
"ExecutionSettings": {
|
|
"MaxTokens": null,
|
|
"Temperature": 0.2,
|
|
"TopP": 0.9,
|
|
"PresencePenalty": 0.0,
|
|
"FrequencyPenalty": 0.0,
|
|
"ResponseFormat": "json_object"
|
|
}
|
|
},
|
|
{
|
|
"Name": "Copywriter",
|
|
"Description": "A persona that writes articles on any topic.",
|
|
"Services": [
|
|
"ChatCompletion"
|
|
],
|
|
"FunctionName": "WriteArticle",
|
|
"PromptTemplate": "You are a writer of articles about any topic and any additional instructions given to you. The syntax of the article content will be markdown, and your response will be in JSON format containing a \"title\" field and a \"markdown\" field using the following JSON structure: { \"title\": \"The title of the Article\", \"markdown\": \"The article content in markdown syntax.\" }. This is the topic: {{$Topic}}. The article consists of around {{$ParagraphCount}} paragraphs. The article must be written in the language {{$Language}} using the following style: {{$WritingStyle}}. Additional instructions (if any): {{$AdditionalInstructions}}.",
|
|
"InputVariables": [
|
|
{
|
|
"Name": "Topic",
|
|
"Description": "The topic to write an article about.",
|
|
"Type": "string"
|
|
},
|
|
{
|
|
"Name": "ParagraphCount",
|
|
"Description": "The number of paragraphs to write.",
|
|
"Type": "int"
|
|
},
|
|
{
|
|
"Name": "Language",
|
|
"Description": "The language to write the text in.",
|
|
"Type": "string"
|
|
},
|
|
{
|
|
"Name": "WritingStyle",
|
|
"Description": "The style to write the text in.",
|
|
"Type": "string"
|
|
},
|
|
{
|
|
"Name": "AdditionalInstructions",
|
|
"Description": "Any additional instructions.",
|
|
"Type": "string"
|
|
}
|
|
],
|
|
"OutputVariable": {
|
|
"Name": "Article",
|
|
"Description": "The article consisting of a title and markdown text."
|
|
},
|
|
"ExecutionSettings": {
|
|
"MaxTokens": null,
|
|
"Temperature": 0.5,
|
|
"TopP": 0.9,
|
|
"PresencePenalty": 0.7,
|
|
"FrequencyPenalty": 0.7,
|
|
"ResponseFormat": "json_object"
|
|
}
|
|
},
|
|
{
|
|
"Name": "ContentPublisher",
|
|
"Description": "A persona that publishes content on a website.",
|
|
"Services": [
|
|
"ChatCompletion"
|
|
],
|
|
"FunctionName": "PublishContent",
|
|
"PromptTemplate": "You are a Content Publisher. Please execute the provided instructions, which are as follows: {{$Instructions}}",
|
|
"InputVariables": [
|
|
{
|
|
"Name": "Instructions",
|
|
"Description": "The instructions to execute.",
|
|
"Type": "string"
|
|
}
|
|
],
|
|
"OutputVariable": {
|
|
"Name": "Result",
|
|
"Description": "The result of the content publishing.",
|
|
"Type": "string"
|
|
},
|
|
"ExecutionSettings": {
|
|
"MaxTokens": null,
|
|
"Temperature": 0.5,
|
|
"TopP": 0.9,
|
|
"PresencePenalty": 0.0,
|
|
"FrequencyPenalty": 0.0
|
|
},
|
|
"ResponseFormat": "json_object",
|
|
"Agents": [
|
|
"Proofreader",
|
|
"SeoSpecialist",
|
|
"Tagger",
|
|
"Summarizer",
|
|
"TitleEditor",
|
|
"Translator",
|
|
"GraphicDesigner",
|
|
"FactChecker",
|
|
"Copywriter"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
} |