当前位置:   article > 正文

如何构建一个个人的 OpenAI 服务器(这样你就可以自动化财务工作)_搭建openai服务器

搭建openai服务器

llama.cpp https://download.csdn.net/download/klam2020/89122425
您是否对 OpenAI 模型的功能着迷,并想尝试创建一个虚假的 OpenAI 服务器用于测试或教育目的? 在本指南中,我们将引导您完成使用 llama.cpp 设置模拟 OpenAI 服务器的过程,并提供演示代码片段来帮助您入门。

启动 Startup


首先,您需要从 GitHub 克隆 llama.cpp 存储库。 您可以这样做:

git clone https://github.com/ggerganov/llama.cpp

安装步骤

对于 Mac 用户:

导航到 llama.cpp 目录并运行以下命令:

cd llama.cpp && make

对于 Windows 用户:

下载 w64devkit 的最新 Fortran 版本。
在您的 PC 上解压 w64devkit 并运行 w64devkit.exe。
使用 cd 命令导航到 llama.cpp 文件夹。
运行以下命令:

make

安装所需的包
设置 llama.cpp 后,您需要安装必要的 Python 包。 运行以下命令:

pip install openai 'llama-cpp-python[server]' pydantic instructor streamlit

启动服务器
现在您已经安装了所需的组件,您可以使用不同的模型和配置启动假 OpenAI 服务器。 这里有些例子:

单一模特聊天 Single Model Chat:

python -m llama_cpp.server --model models/mistral-7b-instruct-v0.1.Q4_0.gguf

具有 GPU 卸载功能的单模型聊天 Single Model Chat with GPU Offload:

python -m llama_cpp.server --model models/mistral-7b-instruct-v0.1.Q4_0.gguf --n_gpu -1

使用 GPU 卸载的单模型函数调用 Single Model Function Calling with GPU Offload:

python -m llama_cpp.server --model models/mistral-7b-instruct-v0.1.Q4_0.gguf --n_gpu -1 --chat functionary

带配置的多模型加载 Multiple Model Load with Config:

python -m llama_cpp.server --config_file config.json

多模式模型 Multi Modal Models:

python -m llama_cpp.server --model models/llava-v1.5-7b-Q4_K.gguf --clip_model_path models/llava-v1.5-7b-mmproj-Q4_0.gguf --n_gpu -1 --chat llava-1-5

使用型号
以下是您可以尝试的一些模型:

Mistral: TheBloke/Mistral-7B-Instruct-v0.1-GGUF
Mixtral: TheBloke/Mixtral-8x7B-Instruct-v0.1-GGUF
LLaVa: jartine/llava-v1.5-7B-GGUF


通过遵循这些步骤并利用提供的演示代码,您可以使用 llama.cpp 创建模拟 OpenAI 服务器以用于实验和学习目的。 在受控环境中探索这些模型的功能,享受乐趣!

Fakeserver
1. openaitest.py

  1. from openai import OpenAI
  2. from colorama import init
  3. from colorama import Fore, Back, Style
  4. import time
  5. init()
  6. client = OpenAI(
  7. base_url="http://localhost:8000/v1",
  8. api_key="123",
  9. )
  10. time.sleep(5)
  11. prompts = [
  12. "what is ROI in the context of finance, provide a worked example?",
  13. "define the efficient frontier in the context of finance",
  14. "what is glass stegal?",
  15. "how does derivative pricing work?",
  16. ]
  17. for prompt in prompts:
  18. print(Fore.LIGHTMAGENTA_EX + prompt, end="\n")
  19. response = client.chat.completions.create(
  20. model="llama.cpp/models/mixtral-8x7b-instruct-v0.1.Q2_K.gguf",
  21. messages=[
  22. {
  23. "role": "user",
  24. "content": prompt,
  25. }
  26. ],
  27. stream=True,
  28. max_tokens=20,
  29. )
  30. for chunk in response:
  31. if chunk.choices[0].delta.content is not None:
  32. print(
  33. Fore.LIGHTBLUE_EX + chunk.choices[0].delta.content,
  34. end="",
  35. flush=True,
  36. )
  37. print("\n")

2. main.py

  1. from openai import OpenAI
  2. import streamlit as st
  3. client = OpenAI(
  4. base_url="http://localhost:8000/v1",
  5. api_key="123",
  6. )
  7. if "messages" not in st.session_state:
  8. st.session_state["messages"] = [
  9. {
  10. "role": "system",
  11. "content": """You are a helpful assistant. If you do not know the answer, reply I don't know
  12. don't make things up.""",
  13. }
  14. ]
  15. st.title("
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/637343
    推荐阅读
    相关标签