先到官网下载LM Studio 网址:LM Studio - Discover, download, and run local LLMs
下载完成后,直接点击运行。在页面搜索栏输入:llama3 chines
然后收获了如下错误信息:network error,怎么办?请转如下链接处理,博主写的很详细
LM Studio Network Error怎么处理https://blog.csdn.net/u012514495/article/details/139418711成功
选择下载数量最多的进行下载。下载时间有点漫长啊。下了3天,0.48M/S,疯了。看下图,照着选LlaMa3。
继续按图操作
等待模型加载完成就可以使用了。
现在我们来尝试问一个问题:“cavans上的绘图功能,修改后不满意想撤回操作,怎么实现”
下面来等待他的回答,慢,很慢,感觉1秒能出一个字,急死个人。可能是我的电脑太老了,跑起来真费劲啊。
抽了根烟,输出完了,内容如下:
在WPF(Windows Presentation Foundation)中,如果你使用了Cavans上的绘图功能,并且想要撤销一个操作,这通常涉及到保存每次的绘图状态,以便于可以恢复到之前的状态。这里有几种方法可以实现这一点:
1. **使用Stack或List来保存状态**:
你可以在每次修改绘图时,推入当前的绘图状态到一个数据结构中(如`Stack`或`List`),这样你就可以通过出栈操作恢复之前的状态。
2. **自定义UndoManager类**:
如果你想要更复杂的撤销和重做功能,你可能需要创建一个`UndoManager`类,负责管理所有操作的历史。每当有新的修改时,都将其添加到操作历史中,并在用户要求撤销时,从历史中取出对应的状态。
3. **使用MVVM模式**:
如果你正在使用MVVM(Model-View-ViewModel)架构,你可以通过在视图模型中维护一个`UndoManager`实例来实现撤销功能。这样,视图模型就负责管理状态,并将状态更新通知给视图。
下面是一个简单的`UndoManager`类示例,它使用了栈来保存每个操作的状态:
```csharp
public class UndoManager<T>
{
private Stack<T> _undoStack;
private Stack<T> _redoStack;
public UndoManager()
{
_undoStack = new Stack<T>();
_redoStack = new Stack<T>();
}
public void AddToUndo(T state)
{
_undoStack.Push(state);
_redoStack.Clear();
}
public T Undo()
{
if (_undoStack.Count > 0)
{
T state = _undoStack.Pop();
_redoStack.Push(state);
return state;
}
return default(T); // 没有可以撤销的操作
}
public bool CanUndo => _undoStack.Count > 0;
public void AddToRedo(T state)
{
if (_undoStack.Count > 0)
{
T currentState = _undoStack.Pop();
state = currentState;
_redoStack.Push(state);
}
}
public T Redo()
{
if (_redoStack.Count > 0)
{
T state = _redoStack.Pop();
_undoStack.Push(state);
return state;
}
return default(T); // 没有可以重做的操作
}
public bool CanRedo => _redoStack.Count > 0;
}
```
在你的视图模型中,你可以这样使用这个`UndoManager`:
```csharp
public class MyViewModel : ViewModelBase
{
private UndoManager<MyGraphicsState> _undoManager;
public MyViewModel()
{
_undoManager = new UndoManager<MyGraphicsState>();
}
public void OnGraphicModified(MyGraphicsState state)
{
// 在这里检查是否可以进行撤销或重做操作
if (_undoManager.CanUndo)
{
// 处理撤销操作
MyGraphicsState previousState = _undoManager.Undo();
// 更新视图状态以反映新的撤销状态
}
else if (_undoManager.CanRedo)
{
// 处理重做操作
MyGraphicsState nextState = _undoManager.Redo();
// 更新视图状态以反映新的重做状态
}
// 将当前状态保存到历史中
_undoManager.AddToUndo(state);
}
}
```
确保`MyGraphicsState`类代表了你的绘图状态的所有必要信息。
在WPF应用程序中,你可以通过使用命令或事件来触发撤销和重做操作。在用户界面上提供撤销/重做按钮,通过这些按钮调用对应的方法即可实现用户交互。
感觉还是不错的,与通义的回答对比了一下,通义更详尽一点,不过这个也够用了。