54 lines
1.4 KiB
Python
54 lines
1.4 KiB
Python
|
|
# Import the necessary functions from ollama, Flask, requests, threading
|
|
from ollama import Client
|
|
from flask import Flask, request, jsonify
|
|
#import requests
|
|
#import threading
|
|
|
|
# Initialize a Flask application
|
|
app = Flask(__name__)
|
|
|
|
def get_response(user_query):
|
|
# Create a client object for interacting with OLLAMA API
|
|
client = Client()
|
|
|
|
# Generate and retrieve the response based on user's query
|
|
response = client.generate_response(user_query)
|
|
|
|
# Return the generated response
|
|
return response
|
|
|
|
def run_flask():
|
|
# Flask endpoint for user interaction
|
|
app.run(port=5000, debug=True)
|
|
|
|
|
|
|
|
@app.route('/smartassist', methods=['POST'])
|
|
def smartassist():
|
|
# Extract the query from the incoming JSON data
|
|
data = request.json
|
|
user_query = data['query']
|
|
|
|
# Get the response from the OLLAMA API based on the user's query
|
|
# NOTE: Should we append message history here? Maybe interact with SQLlite?
|
|
response = get_response(user_query)
|
|
|
|
# Return the response as a JSON object in the HTTP response
|
|
return jsonify({"response": response})
|
|
|
|
|
|
@app.route('/api/chat', methods=['POST'])
|
|
def chat():
|
|
data = request.get_json()
|
|
query = data['query']
|
|
response = requests.post('http://ollama-server/api/v1/chat', json={'prompt': query})
|
|
return jsonify({'response': response.json().get('result')})
|
|
|
|
|
|
if __name__ == '__main__':
|
|
# Run the Flask application
|
|
run_flask()
|
|
|
|
|