Enhance Makefile and rpylib.c:
- Updated Makefile to streamline build process for main application and Python extension. - Implemented C extension in rpylib.c for OpenAI communication, including chat and reset functionalities.
This commit is contained in:
		
							parent
							
								
									c645645155
								
							
						
					
					
						commit
						71606a6c22
					
				
							
								
								
									
										7
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								Makefile
									
									
									
									
									
								
							| @ -1,4 +1,4 @@ | |||||||
| all: build run | all: build build_rpylib run | ||||||
| 
 | 
 | ||||||
| # Variables for compiler and flags
 | # Variables for compiler and flags
 | ||||||
| CC = gcc | CC = gcc | ||||||
| @ -9,12 +9,9 @@ build: | |||||||
| 	$(CC) main.c $(CFLAGS) -o r | 	$(CC) main.c $(CFLAGS) -o r | ||||||
| 	publish r | 	publish r | ||||||
| 
 | 
 | ||||||
| build_free:  |  | ||||||
| 	$(CC) main.c -DFREE_VERSION $(CFLAGS) -o rf |  | ||||||
| 	publish rf |  | ||||||
| 
 |  | ||||||
| build_rpylib: | build_rpylib: | ||||||
| 	$(CC) -shared -o rpylib.so -fPIC rpylib.c -lpython3.12 `python3-config --includes` -I/usr/include/CL -ljson-c -lcurl | 	$(CC) -shared -o rpylib.so -fPIC rpylib.c -lpython3.12 `python3-config --includes` -I/usr/include/CL -ljson-c -lcurl | ||||||
|  | 	publish rpylib.so | ||||||
| 
 | 
 | ||||||
| run:  | run:  | ||||||
| 	./r | 	./r | ||||||
|  | |||||||
							
								
								
									
										25
									
								
								rpylib.c
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								rpylib.c
									
									
									
									
									
								
							| @ -51,9 +51,32 @@ static PyObject* rpylib_chat(PyObject *self, PyObject *args) { | |||||||
|     free(result); |     free(result); | ||||||
|     return py_result; |     return py_result; | ||||||
| } | } | ||||||
| 
 | static PyObject* rpylib_prompt(PyObject *self, PyObject *args) { | ||||||
|  |     const char *role = "user"; | ||||||
|  |     const char *message;  | ||||||
|  |     if (!PyArg_ParseTuple(args, "s", &message)) { | ||||||
|  |         return NULL; | ||||||
|  |     } | ||||||
|  |     char *result = openai_chat(role, message); | ||||||
|  |     PyObject *py_result = PyUnicode_FromString(result); | ||||||
|  |     free(result); | ||||||
|  |     return py_result; | ||||||
|  | } | ||||||
|  | static PyObject* rpylib_system(PyObject *self, PyObject *args) { | ||||||
|  |     const char *role = "system"; | ||||||
|  |     const char *message;  | ||||||
|  |     if (!PyArg_ParseTuple(args, "s", &message)) { | ||||||
|  |         return NULL; | ||||||
|  |     } | ||||||
|  |     char *result = openai_chat(role, message); | ||||||
|  |     PyObject *py_result = PyUnicode_FromString(result); | ||||||
|  |     free(result); | ||||||
|  |     return py_result; | ||||||
|  | } | ||||||
| static PyMethodDef MyModuleMethods[] = { | static PyMethodDef MyModuleMethods[] = { | ||||||
|     {"chat", rpylib_chat, METH_VARARGS, "Chat with OpenAI."}, |     {"chat", rpylib_chat, METH_VARARGS, "Chat with OpenAI."}, | ||||||
|  |     {"prompt", rpylib_prompt, METH_VARARGS, "Prompt to OpenAI."}, | ||||||
|  |     {"system", rpylib_system, METH_VARARGS, "Add system message."}, | ||||||
|     {"reset", rpylib_reset, METH_NOARGS, "Reset message history."}, |     {"reset", rpylib_reset, METH_NOARGS, "Reset message history."}, | ||||||
|     {NULL, NULL, 0, NULL} |     {NULL, NULL, 0, NULL} | ||||||
| }; | }; | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user