{"text_format":"1","workbook":"xlsx","n_sheets":5,"sheets":["Interface","Sources","For Translator","Selfvalidator","Config"],"not_rendered":{"charts":0,"images":2,"macros":1,"external_links":0,"defined_names":2,"comments":0,"pivot_tables":0},"unopened":[],"bounds":{"document_bytes":16777216,"sheet_cells":100000,"rows_first":2000,"rows_last":500,"rows_between":2000,"halvings":0,"cell_chars":16384,"cell_head_chars":4096},"cells_cut":0,"cells_raw":0,"read":"whole","date_system":"1900"}

{"sheet":"Interface","index":0,"n_rows":55,"n_cols":12,"rows_kept":55,"cut":false,"hidden":false,"merged":[[15,4,15,5],[22,2,23,4]]}
["VISCHER GPT"]
["Version 25.9.2024"]
["Quick Guide: In Step 1, formulate the task for the AI, in Step 2, insert (copy and paste) the text needed in support of the task or select a file with the input (on line 13), and then press the button. After a short while, the answer will appear in the green section and can be copied. Below are examples of tasks, and on the right, tasks and texts can be \"temporarily stored\". At the bottom in column C, the AI model can be selected (if available in your organization). We recommend \"gpt-4o\". Do not enter any professional secrets (client names, etc.); also observe the additional instructions regarding the use of AI. For more information on VGPT (e.g., for reading longer texts) see the end of this worksheet.",null,null,null,null,null,"Down here, texts can be copied and pasted if you are experimenting with your prompts and want to revert back to a previous wording and results later on."]
[]
["1. Step: Define the AI's role, context, and task (see examples below; aka \"System\")",null,"Words","Tokens GER","Tokens ENG",null,"Copy & Paste Clipboard","Copy & Paste Clipboard","Copy & Paste Clipboard","Copy & Paste Clipboard","Copy & Paste Clipboard","Copy & Paste Clipboard"]
["You are a virtual employee of our company and have an answer to everything. Give me five reasons why I should consider an AI text generator for my work in the following role.",null,{"$f":"CountWords(A6)+27","v":60},{"$f":"C6*1.8","v":108},{"$f":"C6*1.3","v":78},null,"You are a lawyer. Analyze the following case for me and give me five arguments for and against a lawsuit by Y against X for damages."]
[]
["1 - I do not use any other texts as input for my task",null,{"$f":"IF(LEFT($A$8,1)=\"2\",Sources!E$19,\"\")","v":""},{"$f":"IF(LEFT($A$8,1)=\"2\",Sources!F$19,\"\")","v":""},{"$f":"IF(LEFT($A$8,1)=\"2\",Sources!G$19,\"\")","v":""}]
["2 - The language is English"]
[]
["Step 2: Provide the AI with the content it needs for ist task (e.g. case description, text, contract content; aka \"User\")",null,null,null,null,null,"Copy & Paste Clipboard","Copy & Paste Clipboard","Copy & Paste Clipboard","Copy & Paste Clipboard","Copy & Paste Clipboard","Copy & Paste Clipboard"]
["As a lawyer.",null,{"$f":"CountWords(A12)+A15","v":3},{"$f":"C12*1.8","v":5.4},{"$f":"C12*1.3","v":3.9000000000000004},null,"X is a medium-sized company that specializes in the repair and maintenance of industrial ships. It had maintained a service contract with Y, one of the leading industrial companies in steel production, for 10 years. According to the contract, X was obligated to keep Y's industrial ships in a safe and operational condition. However, in the last 5 years, there has been an increased frequency of incidents attributable to X's inadequate maintenance and repair of the ships. These incidents included outdated equipment, failures of ship systems, and violations of safety regulations. Y had repeatedly reprimanded X over these issues. Despite the warnings, the incidents continued to be a problem, culminating in a severe accident in which one of Y's ships broke apart, causing significant damage to both the ship and its cargo. As a result of this incident, Y faces substantial financial losses and potential legal consequences from regulatory investigations or lawsuits by third parties."]
[]
["If a file is specified here, it will be read and included in step 2 (use only Word-, RTF- or TXT formats; check maximum context size)",null,"Temperature:",null,0.5," (0.0-2.0)","The higher the value, the more creative, inaccurate, and unpredictable the responses, and the higher the risk of the AI hallucinating; use 0.5 for translations and corrections."]
[0,null,"Timeout:",null,200," Seconds","The more complex the question and the more capable the model is, the longer it takes; if a timeout error occurs, this value needs to be increased."]
[null,null,"Model (if selectable):",null,"gpt-4o",null,"The model \"gpt-3.5-turbo\" is fast and affordable; \"gpt-4\" is better, but slower; \"gpt-4-turbo-preview\" is newer and still experimental (it also has certain issues, but processes much more text)"]
[]
[null,null,{"$f":"C6+C12+IF(LEFT($A$8,1)=\"2\",C8,0)","v":63},{"$f":"D6+D12+IF(LEFT($A$8,1)=\"2\",D8,0)","v":113.4},{"$f":"E6+E12+IF(LEFT($A$8,1)=\"2\",E8,0)","v":81.900000000000006}]
[]
["The response of the AI (can be copied to the clipboard for further use)",null,null,"Left GER","Left ENG",null,"Copy & Paste Clipboard","Copy & Paste Clipboard","Copy & Paste Clipboard","Copy & Paste Clipboard","Copy & Paste Clipboard","Copy & Paste Clipboard"]
[null,null,null,{"$f":"Config!$C$8-D18-10","v":127876.6},{"$f":"Config!$C$8-E18-10","v":127908.1}]
[]
["ATTENTION: The answer must be checked for correctness. If there are too many errors, sometimes it helps to lower the temperature.",null,{"$f":"\"The number of tokens is only an estimation. With your the currently selected model, you have \"&TEXT(Config!$C$8,\"0'000\")&\" Tokens available for your input and output in combination. The model's training will cover data up and including \" & VLOOKUP($E$16,Config!$B$16:$D$21,3,FALSE) & \".\"","v":"The number of tokens is only an estimation. With your the currently selected model, you have 128'000 Tokens available for your input and output in combination. The model's training will cover data up and including 4096."}]
["In the following fields, we have listed a series of sample prompts for a variety of tasks. Simply highlight the text (not the cell) and use \"Copy & Paste\" to insert it at Step 1 above. If anyone has an idea for another example that has proven effective in practice, please report it to us, so it can be reviewed and possibly included. This way, it can help others:"]
[]
["Examples for Step 1 (copy and paste above if necessary and adjust if needed)",null,"Title","Date","Author",null,"Remarks"]
["You are the world's best translator. Please translate the following texts into English, using excellent English and you may also rearrange sentences so that they sound natural. The meaning must not be altered.",null,"Translate","2023-12-05","LUHU"]
["You are an experienced lawyer and write short, concise, and easily understandable contracts for Swiss law. Draft a contract in German that takes into account the following points.",null,"Create contract","2023-11-11","LIL"]
["You are a meticulous lawyer with extensive experience in contract analysis. Analyze the following contract and identify all potential disadvantages or ambiguities to the detriment of the party referred to as XXXXX. Examine the contract very carefully and pay attention to every detail. Compare the provisions with what is customary in the YYYYY industry and provide commentary on this. I want a particularly thorough analysis. Also, point out any missing provisions and clauses. Highlight any inconsistencies between the clauses. Present the results as a list with the correct references and suggest a correction at the same time. I want a detailed enumeration.",null,"Check contract","2023-11-11","LIL"]
["You are the meticulous lawyer with a keen sense of language who is particularly adept at conveying texts in a clear and simple manner following the KISS principle (Keep It Short and Simple). Summarize the following text in two paragraphs, ensuring it includes all points essential from a legal and business perspective, and strictly adhere to the technical terms, word choice, and emphasis of the text.",null,"Summary","2023-11-11","LIL"]
["You are a meticulous lawyer with a keen sense of language who excels at conveying texts clearly and simply by adhering to the KISS principle (Keep It Short and Simple). Analyze the following text for clarity and rephrase it to make it as easy to understand as possible, with a clear thread, statements that hit the nail on the head, and easier to read by eliminating unnecessary filler words. Also, correct any errors in grammar, spelling, and language. However, retain the meaning of the text and the technical terms used.",null,"KISS","2023-11-11","LIL"]
["You are the legal editor specialized in rephrasing texts in such a way that they psychologically impact the recipient in a specific manner. You can use any linguistic trick for this purpose. You will rephrase the following text in this sense, so that while it remains friendly and factual in tone, it also becomes more self-assured, persuasive, and authoritative, ensuring that the reader will follow and agree with it. You must not change the core content of the text and the technical terms used, and the text should remain approximately the same length. Text for rephrasing.",null,"Convincing and authoritative","2023-11-11","LIL"]
["You are a successful businessman who knows the XXXX industry in detail and has many unconventional ideas about how to achieve a business goal as effectively as possible. You present yourself to me as a creative and practically minded coach, to provide me with as many concrete ideas, recommendations, and options for action as possible, each including an illustrative example, to achieve my business goal in my environment, which I will describe to you below, as quickly and effectively as possible.",null,"Business Development","2023-11-11","LIL"]
["You are the world's best lawyer with a keen sense for language, who has a particular talent for making texts concise and easily understandable by following the KISS principle (Keep It Short and Simple). Write a reasoning (not a letter) with the following content. Terms and phrases in \"\" should be used unchanged.",null,"Reasoning","2023-12-05","LUHU"]
["You are the world's best HR manager of a top economic law firm and have a keen sense for warning signals, exaggerations, and mistakes in applicants' resumes. Take a very close look at the following CV and explain to me in great detail, (1) which points in the CV indicate problems with this candidate, (2) whether there are indications of untruths, errors, and exaggerations in the CV (today is the year 2024), and (3) what in the CV speaks against a career as a lawyer.",null,"CV Review (prompt only for illustration purpose)","2023-12-05","LIL",null,"Use this only with your own CV. Select the GPT-4-Preview model and set the temperature to 0.5. Attention: Under the EU AI Act, this is a high-risk application if used as an employer; its use would therefore only be permitted under certain conditions. This tool may therefore not be used by employers with this or similar prompts within the scope of the EU AI Act. "]
[]
[]
[]
[]
[]
[]
[]
[]
[]
["This tool may be used for personal data because we have a data processing agreement with OpenAI. This distinguishes it from the publicly available ChatGPT and Copilot. It also supports longer texts (up to the number of tokens, a special unit of measurement from OpenAI, which is indicated at the very bottom of the right column, as well as the currency of the data used for its training). What we enter here will not be used for training the model. However, it must not be used for professional secrets unless the client has permitted this. Unlike in a chat, the tool does not remember previous inquiries and responses; anyone who needs a dialogue (e.g., to refine something) should use a different tool. In the fields above, texts of up to 32,767 characters can be pasted, but only 1,024 characters of them are displayed (all characters can be seen in the entry field above, though). If the AI does not provide an answer within the time span indicated at the bottom right, the tool will abort, and a timeout error will occur. In this case, the timeout time can be increased. At the bottom of this form there are examples of various practical prompts for Step 1. For advanced users who want to read longer texts, it is also possible to specify a file name in line 13. It will then be inserted in addition to the text entered in Step 2 and passed to the AI with the overall prompt. The file must be saved in Word or TXT format. The length is not checked. Therefore, a model should be chosen that supports the text length. Otherwise, an error will occur. Further questions? See the end of this worksheet."]
[]
["In the EU, there will soon be a new AI regulation, the so called \"AI Act\". It restricts certain AI applications that are considered being \"high-risk\" for affected individuals (e.g., assessing job applicants and employees). This tool is not intended to be used for such high-risk applications. If you still use it for such an application, you will expose the organization to consequences under the AI Act (if applicable). To find out more about these high-risk applications and the AI Act, please see here: https://vischerlnk.com/3TKWj2e and https://vischerlnk.com/ai-act-uc"]
[]
["This copy of the tool, and especially the API key contained within, may not be shared with third parties. The API key is a confidential access code of our company and may only be used for authorized purposes. Anyone who needs one for their own project is welcome to contact the appropriate office. A version of this tool that can be shared: https://vischerlnk.com/vgpt-e (also available in German)"]
[]
[{"$f":"\"Internal questions are to be directed to: \" & Config!$C$27","v":"Internal questions are to be directed to: david.rosenthal@vischer.com"}]
[]
["A project of the VISCHER Legal Innovation Lab. All rights reserved. Contact: david.rosenthal@vischer.com. This tool can be used free of charge; with exceptions regarding the content of the fields and a potential API key, the Creative Commons \"Attribution-NoDerivatives 4.0 International\" (CC BY-ND 4.0) applies. The contents in the fill-in fields can be freely modified and are not subject to any license restrictions; additional lines can also be added. Source: https://vischerlnk.com/vgpt-e or https://www.rosenthal.ch"]
[]
["Visit us at vischer.com/ai for more materials on AI legal and ethical compliance."]

{"sheet":"Sources","index":1,"n_rows":19,"n_cols":7,"rows_kept":19,"cut":false,"hidden":false,"merged":[[4,0,4,3],[7,1,7,3],[8,1,8,3],[9,1,9,3],[10,1,10,3],[13,1,13,3],[14,1,14,3],[15,1,15,3],[16,1,16,3],[6,1,6,3],[11,1,11,3],[12,1,12,3]]}
["Source codes"]
[]
["Number of source texts:",null,10]
[]
["Here, texts (e.g., various sample contracts) can be inserted that are passed on to the AI as \"knowledge\" along with the task description as soon as the prompt is sent to the AI. Depending on the number of texts (each text should be copied into a separate field), the parameter above should be adjusted. On the main page, it can then be indicated whether these source texts should be taken into account. Here too, no professional secrets should be entered (so the texts should be anonymized beforehand)."]
[]
["No.","Source content that should be considered as \"knowledge\" by the AI when solving the task at hand",null,null,"Words","Tokens D","Tokens E"]
[1,null,null,null,{"$f":"CountWords(B8)","v":0},{"$f":"E8*1.8","v":0},{"$f":"E8*1.3","v":0}]
[2,null,null,null,{"$f":"CountWords(B9)","v":0},{"$f":"E9*1.8","v":0},{"$f":"E9*1.3","v":0}]
[3,null,null,null,{"$f":"CountWords(B10)","v":0},0,0]
[4,null,null,null,{"$f":"CountWords(B11)","v":0},0,0]
[5,null,null,null,{"$f":"CountWords(B12)","v":0},0,0]
[6,null,null,null,{"$f":"CountWords(B13)","v":0},0,0]
[7,null,null,null,{"$f":"CountWords(B14)","v":0},0,0]
[8,null,null,null,{"$f":"CountWords(B15)","v":0},0,0]
[9,null,null,null,{"$f":"CountWords(B16)","v":0},0,0]
[10,null,null,null,{"$f":"CountWords(B17)","v":0},0,0]
[]
[null,"Total (including special instructions):",null,null,{"$f":"E8+E13+16","v":16},{"$f":"F8+F13","v":0},{"$f":"G8+G13","v":0}]

{"sheet":"For Translator","index":2,"n_rows":10,"n_cols":2,"rows_kept":10,"cut":false,"hidden":false,"merged":[]}
[]
[]
[]
[null,"When this Excel is open, a translation function can be accessed via the context menu (to German, English, and any other language that the AI model is proficient in). Simply select the desired cell in this worksheet or another whose text you want to translate, and choose the corresponding command in the context menu. Please set the temperature to 0.5 before use. The \"Undo\" function is not available."]
[]
[]
[]
[null,"Dies ist ein Test"]
[null,"This is a test"]
[null,"这是一个测试"]

{"sheet":"Selfvalidator","index":3,"n_rows":25,"n_cols":2,"rows_kept":25,"cut":false,"hidden":false,"merged":[[3,0,3,1],[16,0,16,1]]}
["Selfvalidator"]
["Version 7.7.2024"]
[]
["With this tool, a particular question (concerning an individual or particular topic) can be submitted to the chosen model automatically in any chosen number of variations with various temperature parameters, one after the other. The answers are then consolidated using another prompt, for example, by including only those parts of the information that appears in an identical manner in all generated responses. With this approach, the model can be used to validate its answers. This can used to determine which information in the model's response is invented and which information is presumably known by the model as factual knowledge based on its training. Be aware that this is only an \"empirical\" approach. About the settings: \"Question variations\" indicates how many variations the tool shall generate of the initial question; \"Temperature iterations\" indicates how many different temperature settings between 0 and 1 shall be used to submit each of the variations generated from the initial question. The total number of answers results from multiplying the two values. Further adjustments to the system can be made below."]
[]
["Model:","gpt-4o"]
["Question variations:",3]
["Temperature iterations:",2]
[]
["Initial question:","Birthday of Max Schrems"]
["Addtional instructions:"]
[]
[]
[]
["Result:","Max Schrems was born on October [unknown], 1987."]
[]
["The following information is used to control the tool and can be changed but does not have to be. Step 1 is the generation of the variations of the initial question. For this, the Helper prompt 1 is used; between Part 1 and Part 2, the number of expected answers will be inserted (e.g., \"Generate 2 different ...\", if the number 2 is specified above). In Step 2, according to the temperature iterations configured above, the questions generated in Step 1 are submitted to the model with the respective temperature settings, and the answers are recorded. These answers are also displayed as a list in the green field for Step 2. In Step 3, these various answers are analyzed with the Helper prompt 2, and the result is entered into above green field. In Helper prompt 2, the number of answers can be integrated as needed using the placeholder XX and the initial question using the placeholder YY."]
[]
["System prompt:","You are a helpful assistant, work very precisely, check every answer before you give it, and always take the entire text into account."]
["Helper prompt 1 (Part 1):","Generate"]
["Helper prompt 1 (part 2):","different variations of the following question, with the sign \"@\" inserted after each variation; use very different words and word positions for each variation:"]
["Helper prompt 2 (XX = number of answers, YY = initial question):","Below you will receive a series of texts, each labeled as \"Answer 1 =\" to \"Answer XX =\" and each separated by the \"@\" sign. With these texts, you will answer question YY by using only the information and data from Answer 1 that also appear identically in all other texts. Where information and data between the texts contradict each other, include the word \"[unknown]\" at the relevant position within the answer. The answer may only contain information and data that appears in each of the XX subsequent texts."]
[]
["Generated questions (Step 1):","1. On what date was Max Schrems born? @\r\n2. Can you tell me the birthdate of Max Schrems? @\r\n3. When is Max Schrems' birthday? @"]
["Generated answers (Step 2):","Answer 1 = Max Schrems was born on October 11, 1987.@\r\nAnswer 2 = Max Schrems was born on October 11, 1987.@\r\nAnswer 3 = Max Schrems was born on October 16, 1987.@\r\nAnswer 4 = Max Schrems was born on October 11, 1987.@\r\nAnswer 5 = Max Schrems was born on October 11, 1987.@\r\nAnswer 6 = Max Schrems was born on October 16, 1987.@\r\n"]

{"sheet":"Config","index":4,"n_rows":36,"n_cols":25,"rows_kept":36,"cut":false,"hidden":false,"merged":[[11,24,11,29],[0,0,0,3],[26,2,26,5],[9,2,9,9],[10,2,10,3],[10,5,10,9],[22,1,22,5],[11,2,11,9],[4,2,4,7],[12,2,12,9],[11,12,11,16],[11,18,11,22],[9,12,9,16],[9,18,9,22],[4,13,5,14],[10,12,10,16],[10,18,10,22],[33,11,33,12],[33,13,35,19],[31,0,31,9],[35,0,35,9],[29,0,29,9],[27,2,27,5],[33,0,33,9]]}
[{"$f":"Interface!A1","v":"VISCHER GPT"}]
[]
["Configuration of the API for accessing the GPT model:"]
[]
[null,"API-Key:",null,null,null,null,null,null,"Encrypted: ","No",null,"API keys - OpenAI API",null,"Also works with the Azure OpenAI Services"]
[null,"Model:",{"$f":"IF($H$21=\"No\",Interface!$E$16,$H$21)","v":"gpt-4o"},"(is set on the \"Interface\" sheet)",null,null,null,null,"API-Prefix: ","sk-",null,"Models - OpenAI API"]
[null,"Temperature:",{"$f":"SUBSTITUTE(Interface!$E$14,\",\",\".\")","v":"0.5"},"(is set on the \"Interface\" sheet)"]
[null,"Number of Tokens:",{"$f":"VLOOKUP($C$6,$B$16:$C$21,2,FALSE)","v":128000},"(automatically filled in based on the table below)",null,null,null,null,null,null,null,"Encryptor/Decryptor (weakly) encrypts/decrypts API keys (without prefix). Use the same key as in the module \"BasicFunctions\". If \"Encrypted\" is \"Yes\", then the  stored API key will be automatically decrypted. "]
[null,"Timeout (milliseconds):",{"$f":"Interface!$E$15*1000","v":200000},"(is set on the \"Interface\" sheet)"]
[null,"Endpoint (insert {model} and {apikey} if necessary):","https://api.openai.com/v1/chat/completions",null,null,null,null,null,null,null,null,"Azure:","https://[insert_your_endpoint_here]/openai/deployments/{deployment-id}/chat/completions?api-version=2024-06-01",null,null,null,null,"OpenAI:","https://api.openai.com/v1/chat/completions"]
[null,"Header (insert placeholder {apikey}):","Authorization",null,",","Bearer {apikey}",null,null,null,null,null,"Azure:","api-key, {apikey}",null,null,null,null,"OpenAI:","Authorization, Bearer {apikey}"]
[null,"API-Call (insert placeholder {model}, {promptsystem}, {promptuser} and {temperature}):","{\"model\": \"{model}\",  \"messages\": [{\"role\": \"system\",\"content\": \"{promptsystem}\"},{\"role\": \"user\",\"content\": \"{promptuser}\"}],\"temperature\": {temperature}}",null,null,null,null,null,null,null,null,"Azure:","{\"messages\": [{\"role\": \"system\",\"content\": \"{promptsystem}\"},{\"role\": \"user\", \"content\": \"{promptuser}\"}],\"temperature\": {temperature}}",null,null,null,null,"OpenAI:","{\"model\": \"{model}\",  \"messages\": [{\"role\": \"system\",\"content\": \"{promptsystem}\"},{\"role\": \"user\",\"content\": \"{promptuser}\"}],\"temperature\": {temperature}}",null,null,null,null,"For O1-Preview:","{\"model\": \"{model}\",  \"messages\": [{\"role\": \"user\",\"content\": \"{promptsystem} {promptuser}\"}],\"temperature\": 1.0}"]
[null,"Response (JSON segment):","content",null,null,null,null,null,null,null,null,"Azure:","content",null,null,null,null,"OpenAI:","content"]
[]
[null,"Model","Tokens Context","Tokens Output","Cut-off","Fixed*"]
[{"$f":"IF($H$21=\"No\",$B16,$H$21)","v":"gpt-3.5-turbo"},"gpt-3.5-turbo",4096,4096,"September 2021",null,"   (the entries in this table can be adjusted)"]
[{"$f":"IF($H$21=\"No\",$B17,$H$21)","v":"gpt-4"},"gpt-4","8'192","8'192","September 2021"]
["gpt-4-turbo","gpt-4-turbo","128'000",4096,"Dezember 2023"]
["gpt-4o","gpt-4o",128000,4096,"Oktober 2023"]
["chatgpt-4o-latest","chatgpt-4o-latest",128000,16384,"Oktober 2023"]
["o1-preview","o1-preview",128000,32768,"Oktober 2023",null,"    Fixed:",{"$f":"IFERROR(INDEX(B16:B21, MATCH(\"x\", LOWER(F16:F21), 0)),\"No\")","v":"No"}]
[]
[null,"* If Azure OpenAI Services are used, the model is selected through the deployment. In this case, put an \"x\" in the \"Fixed\" column for the respective model. The user can no longer choose models."]
[]
["Internal information:"]
[]
[null,"Inquiries should be directed to:","david.rosenthal@vischer.com",null,null,null,"  (this name appears at the bottom of the main worksheet)"]
[null,"Run-only-at-home (Domain(s)):","int.vischer.com, WORKGROUP",null,null,null,{"$f":"\"  Aktuelle Domäne: \"&GetDomain()","v":"  Aktuelle Domäne: WORKGROUP"},null,null,null,null,"Attention: This cell can only be modified when sheet protection is disabled"]
[]
["This tool only works on Windows systems, but not on MacOS computers. The reason is not that Excel for MacOS or MacOS itself no longer supports access to external internet addresses, which are necessary for the use of OpenAI's API."]
[]
["The Excel worksheets come with a sheet protection (but without a password). "]
[]
["Protection of the API Key: The API key must be kept secret to prevent it from being used or misused for other purposes. It can be stored in an encrypted form. The encryption is not very strong, but since no readable text is being encrypted, it will suffice for most cases (for this reason, if the API key contains a standard prefix, add it in the relevant field above; it will not be encrypted). The encryption only supports API keys with letters and numbers. The key for decryption is encoded at the very beginning of the VBA module \"BasicFunctions\" (\"codebase\"). It can be changed there. Once this is done, the VBA project can be protected with a password. After that, the API key in plain text and the function \"Encryptor\" can be used to create and save the encrypted version with the same key. VGPT will then automatically decrypt the key when needed. Even those who access the cell with the API key will not be able to make use of it. For further protection, the \"Run-only-at-home\" function can be used by entering your own domain in the above field (or multiple domains, separated by a comma). This copy of VGPT will then only run in these domains. Of course, the \"Config\" sheet in the distributed version of the Excel should be hidden and workbook protection activated with a password. See also instruction on the right.",null,null,null,null,null,null,null,null,null,null,"Step by step to the encrypted API key:",null,"1. At the very beginning of the VBA code, assign a secret key text to the constant \"codebasis\" (by default, \"SecretValue\" is used).\n2. In the Prefix field above, enter any standard prefix of the API key (i.e., text sequence appearing in every API key); it will not be encrypted (for security reasons).\n3. Start the Encryptor function; in the first prompt, enter the secret key text (e.g., SecretValue), and in the second prompt, enter the plain text API key along with the prefix.\n4. The result is the encrypted API key. It will be in the clipboard. It should be entered in the field for the API key above.\n5. Set the choice to \"Yes\" at the top for \"Encrypted.\"\n6. The \"Config\" worksheet should be hidden for security before distributing the Excel file. Once it is hidden, workbook protection (with a password) must be activated.\n7. The VBA project should also be password-protected before distributing the Excel file."]
[]
["Author & Developer: David Rosenthal (david.rosenthal@vischer.com, VISCHER Legal Innovation Lab). All rights reserved. Many thanks to Torsten Sämann (DKB) for the support in creating and testing the Azure OpenAI Services interface."]