Update.
This commit is contained in:
parent
c0f5be662a
commit
e02315a0f6
3
.gitignore
vendored
3
.gitignore
vendored
@ -8,4 +8,5 @@ r
|
||||
rf
|
||||
.docs
|
||||
auth.h
|
||||
.rcontext
|
||||
.rcontext*
|
||||
tests
|
||||
|
@ -1,17 +0,0 @@
|
||||
Alle vragen die je krijgt en beantwoordt, worden behandeld in de context van de programmeertalen C of Python.
|
||||
Alle voorbeelden die je geeft, moeten in een van deze programmeertalen zijn.
|
||||
|
||||
Je maakt regelmatig gebruik van een emoticon en gebruikt veel markdown tenzij anders gevraagd wordt.
|
||||
|
||||
Geef in elk antwoord aan of de gekozen taal de juiste keuze is voor het beschreven probleem. Noem één alternatief als dat niet het geval is.
|
||||
|
||||
Als je wordt gevraagd om een review te doen:
|
||||
- Geef de broncode een cijfer tussen 0 en 10.
|
||||
- Geef een korte samenvatting van je review.
|
||||
- Noem drie verbeterpunten voor de broncode.
|
||||
- Noem drie sterke punten van de broncode.
|
||||
|
||||
Als je wordt gevraagd om te controleren op AI-gebruik:
|
||||
- Verdeel de broncode in categorieën.
|
||||
- Wijs elke categorie een percentage van AI-gebruik toe.
|
||||
- Geef een conclusie over de authenticiteit van de code.
|
3
auth.h
3
auth.h
@ -7,9 +7,10 @@
|
||||
// MIT License
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
const char * resolve_api_key(){
|
||||
char * api_key;
|
||||
static char * api_key = NULL;
|
||||
#ifndef FREE_VERSION
|
||||
api_key = getenv("R_KEY");
|
||||
if(api_key)
|
||||
|
6
http.h
6
http.h
@ -242,7 +242,7 @@ char *https_get(char *url)
|
||||
SSL_set_tlsext_host_name(ssl, hostname);
|
||||
SSL_set_fd(ssl, sock);
|
||||
|
||||
int buffer_size = 4096;
|
||||
int buffer_size = 1024*1024;
|
||||
char *buffer = (char *)malloc(buffer_size);
|
||||
|
||||
if (SSL_connect(ssl) <= 0)
|
||||
@ -307,12 +307,12 @@ char *http_post(char *url, char *data)
|
||||
int port = atoi(parsed_url.port);
|
||||
int sock = create_socket(hostname, port);
|
||||
|
||||
int buffer_size = 4096;
|
||||
int buffer_size = 1024*1024;
|
||||
char *buffer = malloc(buffer_size);
|
||||
size_t chunk_size_total = 0;
|
||||
|
||||
size_t len = strlen(data);
|
||||
char *request = malloc(len + 4096);
|
||||
char *request = malloc(len + buffer_size);
|
||||
sprintf(request,
|
||||
"POST %s HTTP/1.1\r\n"
|
||||
"Content-Length: %ld\r\n"
|
||||
|
3
line.h
3
line.h
@ -50,6 +50,9 @@ void line_init() {
|
||||
char* line_read(char* prefix) {
|
||||
char* data = readline(prefix);
|
||||
if (!(data && *data)) {
|
||||
if(data){
|
||||
free(data);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
return data;
|
||||
|
34
main.c
34
main.c
@ -38,32 +38,30 @@
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
char * get_prompt_from_stdin() {
|
||||
char * prompt = malloc(1024 * 1024 * 10 + 1);
|
||||
prompt[0] = 0;
|
||||
char * get_prompt_from_stdin(char * prompt) {
|
||||
int index = 0;
|
||||
prompt[index] = '\0';
|
||||
char c = 0;
|
||||
while ((c = getchar()) != EOF) {
|
||||
prompt[index++] = c;
|
||||
}
|
||||
prompt[index++] = 0;
|
||||
prompt[index++] = '\0';
|
||||
return prompt;
|
||||
}
|
||||
|
||||
char *get_prompt_from_args(int c, char **argv) {
|
||||
char *prompt = malloc(1024 * 1024 + 1);
|
||||
char *prompt = malloc(1024 * 1024 * 10 + 1);
|
||||
prompt[0] = 0;
|
||||
for (int i = 1; i < c; i++) {
|
||||
if (!strcmp(argv[i],"--stdin")){
|
||||
free(prompt);
|
||||
prompt = get_prompt_from_stdin();
|
||||
prompt = get_prompt_from_stdin(prompt);
|
||||
break;
|
||||
}else{
|
||||
strncat(prompt, argv[i], 1024 * 1024);
|
||||
strcat(prompt, argv[i]);
|
||||
if (i < c - 1) {
|
||||
strncat(prompt, " ", 1024 * 1024);
|
||||
strcat(prompt, " ");
|
||||
} else {
|
||||
strncat(prompt, ".", 1024 * 1024);
|
||||
strcat(prompt, ". ");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -78,6 +76,11 @@ bool try_prompt(int argc, char *argv[]) {
|
||||
char *prompt = get_prompt_from_args(argc, argv);
|
||||
if (prompt != NULL) {
|
||||
char *response = openai_chat("user", prompt);
|
||||
if(!response){
|
||||
printf("Could not get response from server\n");
|
||||
free(prompt);
|
||||
return false;
|
||||
}
|
||||
parse_markdown_to_ansi(response);
|
||||
printf("\n");
|
||||
free(response);
|
||||
@ -102,7 +105,7 @@ void render(char *content) {
|
||||
|
||||
void repl() {
|
||||
line_init();
|
||||
char *line;
|
||||
char *line = NULL;
|
||||
char *previous_line = NULL;
|
||||
while ((line = line_read("> "))) {
|
||||
if (!line || !*line) {
|
||||
@ -139,7 +142,7 @@ void repl() {
|
||||
offset = 4;
|
||||
}
|
||||
char *command = (char *)malloc(strlen(line) + 42);
|
||||
command[0] = 0;
|
||||
command[0] = '\0';
|
||||
strcpy(command, "ls ");
|
||||
strcat(command, line + offset);
|
||||
int res = system(command);
|
||||
@ -147,13 +150,14 @@ void repl() {
|
||||
free(command);
|
||||
continue;
|
||||
}
|
||||
|
||||
if(*line){
|
||||
line_add_history(line);
|
||||
char *response = openai_chat("user", line);
|
||||
render(response);
|
||||
free(response);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void help() {
|
||||
char help_text[1024 * 1024] = {0};
|
||||
@ -188,14 +192,14 @@ bool openai_include(char *path) {
|
||||
long size = ftell(file);
|
||||
fseek(file, 0, SEEK_SET);
|
||||
|
||||
char *buffer = (char *)malloc(size);
|
||||
char *buffer = (char *)malloc(size + 1);
|
||||
size_t read = fread(buffer, 1, size, file);
|
||||
if (read == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
fclose(file);
|
||||
buffer[read] = 0;
|
||||
buffer[read] = '\0';
|
||||
openai_system(buffer);
|
||||
|
||||
free(buffer);
|
||||
|
@ -105,14 +105,9 @@ void parse_markdown_to_ansi(const char *markdown) {
|
||||
code_buffer[index] = 0;
|
||||
}
|
||||
}
|
||||
if(index > 0){
|
||||
highlight_code(code_buffer);
|
||||
index = 0;
|
||||
code_buffer[index] = 0;
|
||||
|
||||
}
|
||||
//code_buffer[index] = 0;
|
||||
//highlight_code(code_buffer);
|
||||
if(index)
|
||||
highlight_code(code_buffer);
|
||||
} else {
|
||||
if (strncmp(ptr, "**", 2) == 0) {
|
||||
printf(BOLD);
|
||||
|
1
openai.h
1
openai.h
@ -39,6 +39,7 @@ char *openai_chat(char *role, char *content) {
|
||||
struct json_object *parsed_json = json_tokener_parse(result);
|
||||
if (!parsed_json) {
|
||||
fprintf(stderr, "Failed to parse JSON.\n");
|
||||
fprintf(stderr, "%s\n", result);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
4
plugin.h
4
plugin.h
@ -35,9 +35,13 @@ void plugin_run(char *src) {
|
||||
const char *basics =
|
||||
"import sys\n"
|
||||
"import os\n"
|
||||
"from os import *\n"
|
||||
"import math\n"
|
||||
"import pathlib\n"
|
||||
"from pathlib import Path\n"
|
||||
"import re\n"
|
||||
"import subprocess\n"
|
||||
"from subprocess import *\n"
|
||||
"import time\n"
|
||||
"from datetime import datetime\n"
|
||||
"%s";
|
||||
|
Loading…
Reference in New Issue
Block a user